<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>CryptoAuthLib: atca_host.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">CryptoAuthLib
   </div>
   <div id="projectbrief">Microchip CryptoAuthentication Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('a00584_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">atca_host.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="a00584.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#ifndef ATCA_HOST_H</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#define ATCA_HOST_H</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00359.html">cryptoauthlib.h</a>&quot;</span>  <span class="comment">// contains definitions used by chip and these routines</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#define ATCA_MSG_SIZE_NONCE            (55)</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="a00994.html#ga2b5993f5b7254d8c6e50794824cf47b6">   61</a></span>&#160;<span class="preprocessor">#define ATCA_MSG_SIZE_MAC              (88)</span></div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="a00994.html#gae9245f524128f65f77f65002a5a7265f">   62</a></span>&#160;<span class="preprocessor">#define ATCA_MSG_SIZE_HMAC             (88)</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="a00994.html#ga656372cab66beeb5a333e9a33e342017">   65</a></span>&#160;<span class="preprocessor">#define ATCA_MSG_SIZE_GEN_DIG          (96)</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="a00994.html#ga1f445a11e4da099fec31efd43eadc234">   69</a></span>&#160;<span class="preprocessor">#define ATCA_MSG_SIZE_DERIVE_KEY       (96)</span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="a00994.html#ga4ef7d31c60616cf5177f415e32607d10">   73</a></span>&#160;<span class="preprocessor">#define ATCA_MSG_SIZE_DERIVE_KEY_MAC   (39)</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="a00994.html#gafd8064c07a5f22cdb087c88e1b87c1be">   76</a></span>&#160;<span class="preprocessor">#define ATCA_MSG_SIZE_ENCRYPT_MAC      (96)</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="a00994.html#ga1039bfbe7e13d614814341bdee6afa7b">   79</a></span>&#160;<span class="preprocessor">#define ATCA_MSG_SIZE_PRIVWRITE_MAC    (96)</span></div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="a00994.html#gab51341e9f564bc8f85c2e822835a8bcb">   81</a></span>&#160;<span class="preprocessor">#define ATCA_COMMAND_HEADER_SIZE       ( 4)</span></div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="a00994.html#ga5398e83ccfca8ada7cb609c1e34d2cc4">   82</a></span>&#160;<span class="preprocessor">#define ATCA_GENDIG_ZEROS_SIZE         (25)</span></div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="a00994.html#ga43496218f8a98faad996489af047272f">   83</a></span>&#160;<span class="preprocessor">#define ATCA_WRITE_MAC_ZEROS_SIZE      (25)</span></div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="a00994.html#ga9c24dfde4798589fd98c2583d170aeb1">   84</a></span>&#160;<span class="preprocessor">#define ATCA_PRIVWRITE_MAC_ZEROS_SIZE  (21)</span></div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="a00994.html#ga6a06f47cbc2023edba7e8b0f2f4b08bb">   85</a></span>&#160;<span class="preprocessor">#define ATCA_PRIVWRITE_PLAIN_TEXT_SIZE (36)</span></div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="a00994.html#ga7204dddd2ff69a1139a6a8d8f6c62c9c">   86</a></span>&#160;<span class="preprocessor">#define ATCA_DERIVE_KEY_ZEROS_SIZE     (25)</span></div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="a00994.html#gaf7ec8e72430c612cc936a2ea2f91d6d0">   87</a></span>&#160;<span class="preprocessor">#define HMAC_BLOCK_SIZE                 (64)</span></div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="a00994.html#gaeb6c1ee0fb04b12d185eee8bb766068c">   88</a></span>&#160;<span class="preprocessor">#define ENCRYPTION_KEY_SIZE             (64)</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="a00994.html#ga1a026ad1d6e4ccd5c32f7f0462877b39">   94</a></span>&#160;<span class="preprocessor">#define ATCA_SN_0_DEF                (0x01)</span></div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="a00994.html#ga5e4f22a404b71cabba4fd7085dff5e7c">   95</a></span>&#160;<span class="preprocessor">#define ATCA_SN_1_DEF                (0x23)</span></div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="a00994.html#ga232f0d699ece83f51d63e5a66d254be5">   96</a></span>&#160;<span class="preprocessor">#define ATCA_SN_8_DEF                (0xEE)</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="preprocessor">#define MAC_MODE_USE_TEMPKEY_MASK      ((uint8_t)0x03)</span></div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="a01149.html">  108</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a01149.html">atca_temp_key</a></div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;{</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="a01149.html#a9d39af90116e75f8805942afa953046f">  110</a></span>&#160;    uint8_t  <a class="code" href="a01149.html#a9d39af90116e75f8805942afa953046f">value</a>[<a class="code" href="a00987.html#ga66a410dde8f388c582495ba315284276">ATCA_KEY_SIZE</a> * 2]; </div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="a01149.html#ae687014ee9436f24d700229432e7edfd">  111</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="a01149.html#ae687014ee9436f24d700229432e7edfd">key_id</a>       : 4;         </div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="a01149.html#a2ffc3c1a03eda290c709dc78b7e8b51e">  112</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="a01149.html#a2ffc3c1a03eda290c709dc78b7e8b51e">source_flag</a>  : 1;         </div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="a01149.html#a0ea476753a7de128cb33adb56e0692c6">  113</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="a01149.html#a0ea476753a7de128cb33adb56e0692c6">gen_dig_data</a> : 1;         </div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="a01149.html#a1f0f70b7f0590654fde170e1e392b4f7">  114</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="a01149.html#a1f0f70b7f0590654fde170e1e392b4f7">gen_key_data</a> : 1;         </div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="a01149.html#a7e432dd218a88686e01e0c43cda30d2b">  115</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="a01149.html#a7e432dd218a88686e01e0c43cda30d2b">no_mac_flag</a>  : 1;         </div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="a01149.html#a6b455a7e89f8a891cd7e3b66d1b17b67">  116</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="a01149.html#a6b455a7e89f8a891cd7e3b66d1b17b67">valid</a>        : 1;         </div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="a01149.html#a3f6d684924e3635e6e57441b66b98978">  117</a></span>&#160;    uint8_t  <a class="code" href="a01149.html#a3f6d684924e3635e6e57441b66b98978">is_64</a>;                    </div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;} <a class="code" href="a00994.html#ga30bc02410edabefa2e210709b00105de">atca_temp_key_t</a>;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="a01153.html">  130</a></span>&#160;<span class="keyword">struct </span><a class="code" href="a01153.html">atca_include_data_in_out</a></div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;{</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="a00994.html#gad87f95f0faf0c6fdfe94040efcb14860">  132</a></span>&#160;    uint8_t *      <a class="code" href="a00994.html#gad87f95f0faf0c6fdfe94040efcb14860">p_temp</a>;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="a00994.html#ga8712cb73a4d6b370658d8bc9a77fba3e">  133</a></span>&#160;    <span class="keyword">const</span> uint8_t *<a class="code" href="a00994.html#ga8712cb73a4d6b370658d8bc9a77fba3e">otp</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="a00994.html#ga7276bd20c5842e712da638d25ceb6d92">  134</a></span>&#160;    <span class="keyword">const</span> uint8_t *<a class="code" href="a00994.html#ga7276bd20c5842e712da638d25ceb6d92">sn</a>;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="a01153.html#a37e90f5e3bd99fac2021fb3a326607d4">  135</a></span>&#160;    uint8_t        <a class="code" href="a01153.html#a37e90f5e3bd99fac2021fb3a326607d4">mode</a>;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;};</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="a01157.html">  152</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a01157.html">atca_nonce_in_out</a></div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;{</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="a00994.html#ga1a6b6fb557d8d37d59700faf4e4c9167">  154</a></span>&#160;    uint8_t               <a class="code" href="a00994.html#ga1a6b6fb557d8d37d59700faf4e4c9167">mode</a>;</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="a00994.html#ga876993158b491f4626155b468ffb6edc">  155</a></span>&#160;    uint16_t              <a class="code" href="a00994.html#ga876993158b491f4626155b468ffb6edc">zero</a>;</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="a00994.html#ga02a9d64ea363dc3b231b8cc0b317de8a">  156</a></span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a00994.html#ga02a9d64ea363dc3b231b8cc0b317de8a">num_in</a>;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="a00994.html#ga75f7197e2840bcf9fe00722e739fdd9c">  157</a></span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a00994.html#ga75f7197e2840bcf9fe00722e739fdd9c">rand_out</a>;</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="a00994.html#gaa17e031da4b22938bed1c21161ba371a">  158</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="a01149.html">atca_temp_key</a> *<a class="code" href="a00994.html#gaa17e031da4b22938bed1c21161ba371a">temp_key</a>;</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;} <a class="code" href="a00994.html#gae9d8a27e97696e2e02cea680ea44e3f2">atca_nonce_in_out_t</a>;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="a01161.html">  162</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a01161.html">atca_io_decrypt_in_out</a></div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;{</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="a01161.html#a130c5ab3a3f978b77641faa7813aa5d2">  164</a></span>&#160;    <span class="keyword">const</span> uint8_t* <a class="code" href="a01161.html#a130c5ab3a3f978b77641faa7813aa5d2">io_key</a>;     </div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="a01161.html#a70a057043fcc9f4dc22455f6df43d710">  165</a></span>&#160;    <span class="keyword">const</span> uint8_t* <a class="code" href="a01161.html#a70a057043fcc9f4dc22455f6df43d710">out_nonce</a>;  </div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="a01161.html#abe222f6d3581e7920dcad5306cc906a8">  166</a></span>&#160;    uint8_t*       <a class="code" href="a01161.html#abe222f6d3581e7920dcad5306cc906a8">data</a>;       </div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="a01161.html#ad6bc120bffc64dfc5230863a8ba96596">  167</a></span>&#160;    <span class="keywordtype">size_t</span>         <a class="code" href="a01161.html#ad6bc120bffc64dfc5230863a8ba96596">data_size</a>;  </div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;} <a class="code" href="a00994.html#ga787a3ef3bd9a6feaf71b50fc127b619d">atca_io_decrypt_in_out_t</a>;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="a01165.html">  170</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a01165.html">atca_verify_mac</a></div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;{</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="a01165.html#a37e90f5e3bd99fac2021fb3a326607d4">  172</a></span>&#160;    uint8_t                <a class="code" href="a01165.html#a37e90f5e3bd99fac2021fb3a326607d4">mode</a>;        </div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="a01165.html#ac21eed4200889cc115d16a781871d01c">  173</a></span>&#160;    uint16_t               <a class="code" href="a01165.html#ac21eed4200889cc115d16a781871d01c">key_id</a>;      </div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="a01165.html#a35388d4dff80916a7409fd0554ac58b6">  174</a></span>&#160;    <span class="keyword">const</span> uint8_t*         <a class="code" href="a01165.html#a35388d4dff80916a7409fd0554ac58b6">signature</a>;   </div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="a01165.html#ac76ac607fd679316fc17b16039a86b9c">  175</a></span>&#160;    <span class="keyword">const</span> uint8_t*         <a class="code" href="a01165.html#ac76ac607fd679316fc17b16039a86b9c">other_data</a>;  </div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="a01165.html#abb42a6a187e06500b79b8bdbf097ef1c">  176</a></span>&#160;    <span class="keyword">const</span> uint8_t*         <a class="code" href="a01165.html#abb42a6a187e06500b79b8bdbf097ef1c">msg_dig_buf</a>; </div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="a01165.html#a130c5ab3a3f978b77641faa7813aa5d2">  177</a></span>&#160;    <span class="keyword">const</span> uint8_t*         <a class="code" href="a01165.html#a130c5ab3a3f978b77641faa7813aa5d2">io_key</a>;      </div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="a01165.html#aef45bac2efcd5394c4ed79f73ee16d23">  178</a></span>&#160;    <span class="keyword">const</span> uint8_t*         <a class="code" href="a01165.html#aef45bac2efcd5394c4ed79f73ee16d23">sn</a>;          </div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="a01165.html#a7a67318a2d1cde0794d2d1ae152c93cf">  179</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="a01149.html">atca_temp_key_t</a>* <a class="code" href="a01165.html#a7a67318a2d1cde0794d2d1ae152c93cf">temp_key</a>;    </div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="a01165.html#aa5a9ad86915dfcef6db90b858690212a">  180</a></span>&#160;    uint8_t*               <a class="code" href="a01165.html#aa5a9ad86915dfcef6db90b858690212a">mac</a>;         </div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;} <a class="code" href="a00994.html#ga39d794a93edb13943760550086940fa4">atca_verify_mac_in_out_t</a>;</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="a01169.html">  184</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a01169.html">atca_secureboot_enc_in_out</a></div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;{</div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="a01169.html#a130c5ab3a3f978b77641faa7813aa5d2">  186</a></span>&#160;    <span class="keyword">const</span> uint8_t*              <a class="code" href="a01169.html#a130c5ab3a3f978b77641faa7813aa5d2">io_key</a>;      </div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="a01169.html#a714b07e0515fd9d20714a4fc2a16c03e">  187</a></span>&#160;    <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="a01149.html">atca_temp_key</a>* <a class="code" href="a01169.html#a714b07e0515fd9d20714a4fc2a16c03e">temp_key</a>;    </div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="a01169.html#aff3a2b64b0d86058508f766de59438d1">  188</a></span>&#160;    <span class="keyword">const</span> uint8_t*              <a class="code" href="a01169.html#aff3a2b64b0d86058508f766de59438d1">digest</a>;      </div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="a01169.html#a4e3f2b3f58d04cbc9d85d936b039170e">  189</a></span>&#160;    uint8_t*                    <a class="code" href="a01169.html#a4e3f2b3f58d04cbc9d85d936b039170e">hashed_key</a>;  </div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="a01169.html#aa9a9b371e24a757dba2cf1f87d03b31e">  190</a></span>&#160;    uint8_t*                    <a class="code" href="a01169.html#aa9a9b371e24a757dba2cf1f87d03b31e">digest_enc</a>;  </div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;} <a class="code" href="a00994.html#gaa60674423eaa2e7f37f2c1cf2855f2d7">atca_secureboot_enc_in_out_t</a>;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="a01173.html">  194</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a01173.html">atca_secureboot_mac_in_out</a></div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;{</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="a01173.html#a37e90f5e3bd99fac2021fb3a326607d4">  196</a></span>&#160;    uint8_t        <a class="code" href="a01173.html#a37e90f5e3bd99fac2021fb3a326607d4">mode</a>;                </div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="a01173.html#a16a7565b150a9c17a39c80fc932b9514">  197</a></span>&#160;    uint16_t       <a class="code" href="a01173.html#a16a7565b150a9c17a39c80fc932b9514">param2</a>;              </div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="a01173.html#a6abd57960eb27eecadcf1163a1441fb1">  198</a></span>&#160;    uint16_t       <a class="code" href="a01173.html#a6abd57960eb27eecadcf1163a1441fb1">secure_boot_config</a>;  </div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="a01173.html#a1f1ddb903087eec963d0faf82a3283a4">  199</a></span>&#160;    <span class="keyword">const</span> uint8_t* <a class="code" href="a01173.html#a1f1ddb903087eec963d0faf82a3283a4">hashed_key</a>;          </div><div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="a01173.html#aff3a2b64b0d86058508f766de59438d1">  200</a></span>&#160;    <span class="keyword">const</span> uint8_t* <a class="code" href="a01173.html#aff3a2b64b0d86058508f766de59438d1">digest</a>;              </div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="a01173.html#a35388d4dff80916a7409fd0554ac58b6">  201</a></span>&#160;    <span class="keyword">const</span> uint8_t* <a class="code" href="a01173.html#a35388d4dff80916a7409fd0554ac58b6">signature</a>;           </div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="a01173.html#aa5a9ad86915dfcef6db90b858690212a">  202</a></span>&#160;    uint8_t*       <a class="code" href="a01173.html#aa5a9ad86915dfcef6db90b858690212a">mac</a>;                 </div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;} <a class="code" href="a00994.html#gace9a9d1e2e34d294e573098600b6f061">atca_secureboot_mac_in_out_t</a>;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="a01177.html">  227</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a01177.html">atca_mac_in_out</a></div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;{</div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="a00994.html#ga1a6b6fb557d8d37d59700faf4e4c9167">  229</a></span>&#160;    uint8_t               <a class="code" href="a00994.html#ga1a6b6fb557d8d37d59700faf4e4c9167">mode</a>;</div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="a00994.html#ga3eedc11953a89e931ede529eb72592ac">  230</a></span>&#160;    uint16_t              <a class="code" href="a00994.html#ga3eedc11953a89e931ede529eb72592ac">key_id</a>;</div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="a00994.html#ga88d82c85f774fa04ccf768e566fec194">  231</a></span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a00994.html#ga88d82c85f774fa04ccf768e566fec194">challenge</a>;</div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="a00994.html#gab0d96f9d852c2058c2546a1338e87544">  232</a></span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a00994.html#gab0d96f9d852c2058c2546a1338e87544">key</a>;</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="a00994.html#ga8712cb73a4d6b370658d8bc9a77fba3e">  233</a></span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a00994.html#ga8712cb73a4d6b370658d8bc9a77fba3e">otp</a>;</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="a00994.html#ga7276bd20c5842e712da638d25ceb6d92">  234</a></span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a00994.html#ga7276bd20c5842e712da638d25ceb6d92">sn</a>;</div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="a00994.html#ga8ab7bcb35ce5bba05608c72da6b4a0d3">  235</a></span>&#160;    uint8_t *             <a class="code" href="a00994.html#ga8ab7bcb35ce5bba05608c72da6b4a0d3">response</a>;</div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="a00994.html#gaa17e031da4b22938bed1c21161ba371a">  236</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="a01149.html">atca_temp_key</a> *<a class="code" href="a00994.html#gaa17e031da4b22938bed1c21161ba371a">temp_key</a>;</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;} <a class="code" href="a00994.html#ga21e3f5ec2d0765d3e98432c4e8498350">atca_mac_in_out_t</a>;</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="a01181.html">  257</a></span>&#160;<span class="keyword">struct </span><a class="code" href="a01181.html">atca_hmac_in_out</a></div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;{</div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="a00994.html#ga1a6b6fb557d8d37d59700faf4e4c9167">  259</a></span>&#160;    uint8_t               <a class="code" href="a00994.html#ga1a6b6fb557d8d37d59700faf4e4c9167">mode</a>;</div><div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="a00994.html#ga3eedc11953a89e931ede529eb72592ac">  260</a></span>&#160;    uint16_t              <a class="code" href="a00994.html#ga3eedc11953a89e931ede529eb72592ac">key_id</a>;</div><div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="a00994.html#gab0d96f9d852c2058c2546a1338e87544">  261</a></span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a00994.html#gab0d96f9d852c2058c2546a1338e87544">key</a>;</div><div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="a00994.html#ga8712cb73a4d6b370658d8bc9a77fba3e">  262</a></span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a00994.html#ga8712cb73a4d6b370658d8bc9a77fba3e">otp</a>;</div><div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="a00994.html#ga7276bd20c5842e712da638d25ceb6d92">  263</a></span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a00994.html#ga7276bd20c5842e712da638d25ceb6d92">sn</a>;</div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="a00994.html#ga8ab7bcb35ce5bba05608c72da6b4a0d3">  264</a></span>&#160;    uint8_t *             <a class="code" href="a00994.html#ga8ab7bcb35ce5bba05608c72da6b4a0d3">response</a>;</div><div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="a00994.html#gaa17e031da4b22938bed1c21161ba371a">  265</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="a01149.html">atca_temp_key</a> *<a class="code" href="a00994.html#gaa17e031da4b22938bed1c21161ba371a">temp_key</a>;</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;};</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="a01185.html">  272</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a01185.html">atca_gen_dig_in_out</a></div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;{</div><div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="a01185.html#ac746c3d65092170bfaf5b0d9950d8438">  274</a></span>&#160;    uint8_t               <a class="code" href="a01185.html#ac746c3d65092170bfaf5b0d9950d8438">zone</a>;         </div><div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="a01185.html#ac21eed4200889cc115d16a781871d01c">  275</a></span>&#160;    uint16_t              <a class="code" href="a01185.html#ac21eed4200889cc115d16a781871d01c">key_id</a>;       </div><div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="a01185.html#a6ab45b7847bf9d25cc2be99b11641e5f">  276</a></span>&#160;    <span class="keywordtype">bool</span>                  <a class="code" href="a01185.html#a6ab45b7847bf9d25cc2be99b11641e5f">is_key_nomac</a>; </div><div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="a01185.html#aef45bac2efcd5394c4ed79f73ee16d23">  277</a></span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a01185.html#aef45bac2efcd5394c4ed79f73ee16d23">sn</a>;           </div><div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="a01185.html#a7871fda0cd5698905bc3aa8fe8a99808">  278</a></span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a01185.html#a7871fda0cd5698905bc3aa8fe8a99808">stored_value</a>; </div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="a01185.html#ac76ac607fd679316fc17b16039a86b9c">  279</a></span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a01185.html#ac76ac607fd679316fc17b16039a86b9c">other_data</a>;   </div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="a01185.html#a72fae3d62889ef224f09c57a7646e061">  280</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="a01149.html">atca_temp_key</a> *<a class="code" href="a01185.html#a72fae3d62889ef224f09c57a7646e061">temp_key</a>;     </div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;} <a class="code" href="a00994.html#ga5ed81b300bd0d04f88708ad122d3a53a">atca_gen_dig_in_out_t</a>;</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="a01189.html">  286</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a01189.html">atca_write_mac_in_out</a></div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;{</div><div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="a01189.html#ac746c3d65092170bfaf5b0d9950d8438">  288</a></span>&#160;    uint8_t               <a class="code" href="a01189.html#ac746c3d65092170bfaf5b0d9950d8438">zone</a>;           </div><div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="a01189.html#ac21eed4200889cc115d16a781871d01c">  289</a></span>&#160;    uint16_t              <a class="code" href="a01189.html#ac21eed4200889cc115d16a781871d01c">key_id</a>;         </div><div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="a01189.html#aef45bac2efcd5394c4ed79f73ee16d23">  290</a></span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a01189.html#aef45bac2efcd5394c4ed79f73ee16d23">sn</a>;             </div><div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="a01189.html#a699b6e4448b505a2664025ccca3522f5">  291</a></span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a01189.html#a699b6e4448b505a2664025ccca3522f5">input_data</a>;     </div><div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="a01189.html#a8c2a094baeab96152cea462ba9677887">  292</a></span>&#160;    uint8_t *             <a class="code" href="a01189.html#a8c2a094baeab96152cea462ba9677887">encrypted_data</a>; </div><div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="a01189.html#a9f11512564ff4aeaf5f9d0646d971ed2">  293</a></span>&#160;    uint8_t *             <a class="code" href="a01189.html#a9f11512564ff4aeaf5f9d0646d971ed2">auth_mac</a>;       </div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="a01189.html#a72fae3d62889ef224f09c57a7646e061">  294</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="a01149.html">atca_temp_key</a> *<a class="code" href="a01189.html#a72fae3d62889ef224f09c57a7646e061">temp_key</a>;       </div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;} <a class="code" href="a00994.html#gafeefb2141ebb14988f08eb86f7cd6608">atca_write_mac_in_out_t</a>;</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="a01193.html">  300</a></span>&#160;<span class="keyword">struct </span><a class="code" href="a01193.html">atca_derive_key_in_out</a></div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;{</div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="a01193.html#a37e90f5e3bd99fac2021fb3a326607d4">  302</a></span>&#160;    uint8_t               <a class="code" href="a01193.html#a37e90f5e3bd99fac2021fb3a326607d4">mode</a>;          </div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="a01193.html#a41104a8c85cd12c0fde0d791c3276a48">  303</a></span>&#160;    uint16_t              <a class="code" href="a01193.html#a41104a8c85cd12c0fde0d791c3276a48">target_key_id</a>; </div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="a01193.html#aef45bac2efcd5394c4ed79f73ee16d23">  304</a></span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a01193.html#aef45bac2efcd5394c4ed79f73ee16d23">sn</a>;            </div><div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="a01193.html#a000599eef5677ed1279b025c42ae260e">  305</a></span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a01193.html#a000599eef5677ed1279b025c42ae260e">parent_key</a>;    </div><div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="a01193.html#afca67d3e5d5a7c772262731cc08880b1">  306</a></span>&#160;    uint8_t *             <a class="code" href="a01193.html#afca67d3e5d5a7c772262731cc08880b1">target_key</a>;    </div><div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="a01193.html#a72fae3d62889ef224f09c57a7646e061">  307</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="a01149.html">atca_temp_key</a> *<a class="code" href="a01193.html#a72fae3d62889ef224f09c57a7646e061">temp_key</a>;      </div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;};</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="a01197.html">  314</a></span>&#160;<span class="keyword">struct </span><a class="code" href="a01197.html">atca_derive_key_mac_in_out</a></div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;{</div><div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="a01197.html#a37e90f5e3bd99fac2021fb3a326607d4">  316</a></span>&#160;    uint8_t        <a class="code" href="a01197.html#a37e90f5e3bd99fac2021fb3a326607d4">mode</a>;            </div><div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="a01197.html#a41104a8c85cd12c0fde0d791c3276a48">  317</a></span>&#160;    uint16_t       <a class="code" href="a01197.html#a41104a8c85cd12c0fde0d791c3276a48">target_key_id</a>;   </div><div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="a01197.html#aef45bac2efcd5394c4ed79f73ee16d23">  318</a></span>&#160;    <span class="keyword">const</span> uint8_t *<a class="code" href="a01197.html#aef45bac2efcd5394c4ed79f73ee16d23">sn</a>;              </div><div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="a01197.html#a000599eef5677ed1279b025c42ae260e">  319</a></span>&#160;    <span class="keyword">const</span> uint8_t *<a class="code" href="a01197.html#a000599eef5677ed1279b025c42ae260e">parent_key</a>;      </div><div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="a01197.html#aa5a9ad86915dfcef6db90b858690212a">  320</a></span>&#160;    uint8_t *      <a class="code" href="a01197.html#aa5a9ad86915dfcef6db90b858690212a">mac</a>;             </div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;};</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;</div><div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="a01201.html">  331</a></span>&#160;<span class="keyword">struct </span><a class="code" href="a01201.html">atca_decrypt_in_out</a></div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;{</div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="a00994.html#ga4155a23e70d1bf07de5d316efebeaee7">  333</a></span>&#160;    uint8_t *             <a class="code" href="a00994.html#ga4155a23e70d1bf07de5d316efebeaee7">crypto_data</a>;</div><div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="a00994.html#gaa17e031da4b22938bed1c21161ba371a">  334</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="a01149.html">atca_temp_key</a> *<a class="code" href="a00994.html#gaa17e031da4b22938bed1c21161ba371a">temp_key</a>;</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;};</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="a01205.html">  340</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a01205.html">atca_check_mac_in_out</a></div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;{</div><div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="a01205.html#a37e90f5e3bd99fac2021fb3a326607d4">  342</a></span>&#160;    uint8_t        <a class="code" href="a01205.html#a37e90f5e3bd99fac2021fb3a326607d4">mode</a>;            </div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="a01205.html#ac21eed4200889cc115d16a781871d01c">  343</a></span>&#160;    uint16_t       <a class="code" href="a01205.html#ac21eed4200889cc115d16a781871d01c">key_id</a>;          </div><div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="a01205.html#aef45bac2efcd5394c4ed79f73ee16d23">  344</a></span>&#160;    <span class="keyword">const</span> uint8_t *<a class="code" href="a01205.html#aef45bac2efcd5394c4ed79f73ee16d23">sn</a>;              </div><div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="a01205.html#a218f1c30c4a21b348dbe1817a2c14896">  345</a></span>&#160;    <span class="keyword">const</span> uint8_t *<a class="code" href="a01205.html#a218f1c30c4a21b348dbe1817a2c14896">client_chal</a>;     </div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="a01205.html#a430a448768d687a94e3daaa00dce63ce">  346</a></span>&#160;    uint8_t *      <a class="code" href="a01205.html#a430a448768d687a94e3daaa00dce63ce">client_resp</a>;     </div><div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="a01205.html#ac76ac607fd679316fc17b16039a86b9c">  347</a></span>&#160;    <span class="keyword">const</span> uint8_t *<a class="code" href="a01205.html#ac76ac607fd679316fc17b16039a86b9c">other_data</a>;      </div><div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="a01205.html#a4510889ef4b42470bf1a1d4e940a19a9">  348</a></span>&#160;    <span class="keyword">const</span> uint8_t *<a class="code" href="a01205.html#a4510889ef4b42470bf1a1d4e940a19a9">otp</a>;             </div><div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="a01205.html#aa23b467edf1809a2a8b1b530a0159c45">  349</a></span>&#160;    <span class="keyword">const</span> uint8_t *<a class="code" href="a01205.html#aa23b467edf1809a2a8b1b530a0159c45">slot_key</a>;        </div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a01205.html#ab15c5e89189b9eea6fab7da58cc03967">target_key</a>;</div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="a01205.html#a72fae3d62889ef224f09c57a7646e061">  353</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="a01149.html">atca_temp_key</a> *<a class="code" href="a01205.html#a72fae3d62889ef224f09c57a7646e061">temp_key</a>; </div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;} <a class="code" href="a00994.html#ga897821490d4d10e168f1c94cd67966e7">atca_check_mac_in_out_t</a>;</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;</div><div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="a01209.html">  368</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a01209.html">atca_verify_in_out</a></div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;{</div><div class="line"><a name="l00370"></a><span class="lineno"><a class="line" href="a00994.html#ga9be4eee4ac6c9248a824d093f165839e">  370</a></span>&#160;    uint16_t              <a class="code" href="a00994.html#ga9be4eee4ac6c9248a824d093f165839e">curve_type</a>;</div><div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="a00994.html#gac97246a9059d3f687edfcbe5abfc5d8f">  371</a></span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a00994.html#gac97246a9059d3f687edfcbe5abfc5d8f">signature</a>;</div><div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="a00994.html#gacea547aa606ca17f8da337a1b58972a1">  372</a></span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a00994.html#gacea547aa606ca17f8da337a1b58972a1">public_key</a>;</div><div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="a00994.html#gaa17e031da4b22938bed1c21161ba371a">  373</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="a01149.html">atca_temp_key</a> *<a class="code" href="a00994.html#gaa17e031da4b22938bed1c21161ba371a">temp_key</a>;</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;} <a class="code" href="a00994.html#gab4d485e0545aa3defd75702fe51f9a13">atca_verify_in_out_t</a>;</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;</div><div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="a01213.html">  380</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a01213.html">atca_gen_key_in_out</a></div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;{</div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="a01213.html#a37e90f5e3bd99fac2021fb3a326607d4">  382</a></span>&#160;    uint8_t               <a class="code" href="a01213.html#a37e90f5e3bd99fac2021fb3a326607d4">mode</a>;            </div><div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="a01213.html#ac21eed4200889cc115d16a781871d01c">  383</a></span>&#160;    uint16_t              <a class="code" href="a01213.html#ac21eed4200889cc115d16a781871d01c">key_id</a>;          </div><div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="a01213.html#a122aff75e4ff5cd19542117ba3fdb855">  384</a></span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a01213.html#a122aff75e4ff5cd19542117ba3fdb855">public_key</a>;      </div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="a01213.html#aeaa21ee86ed67c665d190be7d12293c7">  385</a></span>&#160;    <span class="keywordtype">size_t</span>                <a class="code" href="a01213.html#aeaa21ee86ed67c665d190be7d12293c7">public_key_size</a>; </div><div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="a01213.html#ac76ac607fd679316fc17b16039a86b9c">  386</a></span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a01213.html#ac76ac607fd679316fc17b16039a86b9c">other_data</a>;      </div><div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="a01213.html#aef45bac2efcd5394c4ed79f73ee16d23">  387</a></span>&#160;    <span class="keyword">const</span> uint8_t *       <a class="code" href="a01213.html#aef45bac2efcd5394c4ed79f73ee16d23">sn</a>;              </div><div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="a01213.html#a72fae3d62889ef224f09c57a7646e061">  388</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="a01149.html">atca_temp_key</a> *<a class="code" href="a01213.html#a72fae3d62889ef224f09c57a7646e061">temp_key</a>;        </div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;} <a class="code" href="a00994.html#ga804b097bbb0a7086f7d208390689146b">atca_gen_key_in_out_t</a>;</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="a01217.html">  395</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a01217.html">atca_sign_internal_in_out</a></div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;{</div><div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="a01217.html#a37e90f5e3bd99fac2021fb3a326607d4">  397</a></span>&#160;    uint8_t                     <a class="code" href="a01217.html#a37e90f5e3bd99fac2021fb3a326607d4">mode</a>;              </div><div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="a01217.html#ac21eed4200889cc115d16a781871d01c">  398</a></span>&#160;    uint16_t                    <a class="code" href="a01217.html#ac21eed4200889cc115d16a781871d01c">key_id</a>;            </div><div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="a01217.html#a547704fabd162cdaa3d5ce84a111a3fc">  399</a></span>&#160;    uint16_t                    <a class="code" href="a01217.html#a547704fabd162cdaa3d5ce84a111a3fc">slot_config</a>;       </div><div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="a01217.html#af209160ffa65b538728640eb34e4be75">  400</a></span>&#160;    uint16_t                    <a class="code" href="a01217.html#af209160ffa65b538728640eb34e4be75">key_config</a>;        </div><div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="a01217.html#a0aea6a2aaa9c7c3368d6a394d4c9ae05">  401</a></span>&#160;    uint8_t                     <a class="code" href="a01217.html#a0aea6a2aaa9c7c3368d6a394d4c9ae05">use_flag</a>;          </div><div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="a01217.html#a4a25483bf435220f212cbe8f0327b0a6">  402</a></span>&#160;    uint8_t                     <a class="code" href="a01217.html#a4a25483bf435220f212cbe8f0327b0a6">update_count</a>;      </div><div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="a01217.html#afaeb2ef8df7a105b7f93a9fdb82fd6e8">  403</a></span>&#160;    <span class="keywordtype">bool</span>                        <a class="code" href="a01217.html#afaeb2ef8df7a105b7f93a9fdb82fd6e8">is_slot_locked</a>;    </div><div class="line"><a name="l00404"></a><span class="lineno"><a class="line" href="a01217.html#ac3544274ceb4f8950b3a5fe6640be634">  404</a></span>&#160;    <span class="keywordtype">bool</span>                        <a class="code" href="a01217.html#ac3544274ceb4f8950b3a5fe6640be634">for_invalidate</a>;    </div><div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="a01217.html#aef45bac2efcd5394c4ed79f73ee16d23">  405</a></span>&#160;    <span class="keyword">const</span> uint8_t *             <a class="code" href="a01217.html#aef45bac2efcd5394c4ed79f73ee16d23">sn</a>;                </div><div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="a01217.html#a714b07e0515fd9d20714a4fc2a16c03e">  406</a></span>&#160;    <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="a01149.html">atca_temp_key</a> *<a class="code" href="a01217.html#a714b07e0515fd9d20714a4fc2a16c03e">temp_key</a>;          </div><div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="a01217.html#a35f4a3225daf3021decdc4ecea74fa46">  407</a></span>&#160;    uint8_t*                    <a class="code" href="a01217.html#a35f4a3225daf3021decdc4ecea74fa46">message</a>;           </div><div class="line"><a name="l00408"></a><span class="lineno"><a class="line" href="a01217.html#a04c0e9b276020bed4ed3d7d670ed3881">  408</a></span>&#160;    uint8_t*                    <a class="code" href="a01217.html#a04c0e9b276020bed4ed3d7d670ed3881">verify_other_data</a>; </div><div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="a01217.html#a0b448fbaa0c4f1770b7c3f53acf265c5">  409</a></span>&#160;    uint8_t*                    <a class="code" href="a01217.html#a0b448fbaa0c4f1770b7c3f53acf265c5">digest</a>;            </div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;} <a class="code" href="a00994.html#gafdb82fc57fb953626c28c757a5220274">atca_sign_internal_in_out_t</a>;</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00994.html#ga9ee18575f8b4c1560f9e5c741403ef1b">atcah_nonce</a>(<span class="keyword">struct</span> <a class="code" href="a01157.html">atca_nonce_in_out</a> *param);</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00994.html#ga44361cadf1819cea687208eeadd57059">atcah_mac</a>(<span class="keyword">struct</span> <a class="code" href="a01177.html">atca_mac_in_out</a> *param);</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00994.html#ga5b457cd0ccba73864eee4030b6079ba7">atcah_check_mac</a>(<span class="keyword">struct</span> <a class="code" href="a01205.html">atca_check_mac_in_out</a> *param);</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00994.html#gab17435577e546d2954bd697f21e6d3cc">atcah_hmac</a>(<span class="keyword">struct</span> <a class="code" href="a01181.html">atca_hmac_in_out</a> *param);</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00994.html#ga6f6043ba8eebbaab6e6f3b4fa5e31ad4">atcah_gen_dig</a>(<span class="keyword">struct</span> <a class="code" href="a01185.html">atca_gen_dig_in_out</a> *param);</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00994.html#ga43ef2dc1159f28fbb100a2b9bf150c0c">atcah_gen_mac</a>(<span class="keyword">struct</span> <a class="code" href="a01185.html">atca_gen_dig_in_out</a> *param);</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00994.html#ga47853951c57803eff1432780bf360057">atcah_write_auth_mac</a>(<span class="keyword">struct</span> <a class="code" href="a01189.html">atca_write_mac_in_out</a> *param);</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00994.html#gaed8aa58875c6bdf46a937313e69c6ebb">atcah_privwrite_auth_mac</a>(<span class="keyword">struct</span> <a class="code" href="a01189.html">atca_write_mac_in_out</a> *param);</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00994.html#ga02b3479eaee1bd1741675c2a1249ffda">atcah_derive_key</a>(<span class="keyword">struct</span> <a class="code" href="a01193.html">atca_derive_key_in_out</a> *param);</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00994.html#ga60fc543b3df6fa1dedfbf59e5bde554b">atcah_derive_key_mac</a>(<span class="keyword">struct</span> <a class="code" href="a01197.html">atca_derive_key_mac_in_out</a> *param);</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00994.html#ga89408b8338dd9f43c4ba85b2a082c3ae">atcah_decrypt</a>(<span class="keyword">struct</span> <a class="code" href="a01201.html">atca_decrypt_in_out</a> *param);</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00994.html#gad7e2217cd71b77b6c1b08f2f2f6f0a3e">atcah_sha256</a>(int32_t len, <span class="keyword">const</span> uint8_t *message, uint8_t *digest);</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;uint8_t *<a class="code" href="a00994.html#gad456d2c1172343bb40d8cd0e391d44f4">atcah_include_data</a>(<span class="keyword">struct</span> <a class="code" href="a01153.html">atca_include_data_in_out</a> *param);</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00994.html#gabf2abd4bd62f47537756c9ab109050c0">atcah_gen_key_msg</a>(<span class="keyword">struct</span> <a class="code" href="a01213.html">atca_gen_key_in_out</a> *param);</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00994.html#ga316e7eeaeedc7a30824294280488e24e">atcah_config_to_sign_internal</a>(<a class="code" href="a00988.html#gafb234ccd6a80d09c0efbe336c2354267">ATCADeviceType</a> device_type, <span class="keyword">struct</span> <a class="code" href="a01217.html">atca_sign_internal_in_out</a> *param, <span class="keyword">const</span> uint8_t* config);</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00994.html#ga680045caed6e8f6e136e1a2dc3fe1c9e">atcah_sign_internal_msg</a>(<a class="code" href="a00988.html#gafb234ccd6a80d09c0efbe336c2354267">ATCADeviceType</a> device_type, <span class="keyword">struct</span> <a class="code" href="a01217.html">atca_sign_internal_in_out</a> *param);</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00994.html#ga03632bc31f21bec0d13d4f0cab198958">atcah_verify_mac</a>(<a class="code" href="a01165.html">atca_verify_mac_in_out_t</a> *param);</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00994.html#ga4c89f8023aec521281824c0e35713baa">atcah_secureboot_enc</a>(<a class="code" href="a01169.html">atca_secureboot_enc_in_out_t</a>* param);</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00994.html#gaa795bec90432fbfa194913d8b4098fab">atcah_secureboot_mac</a>(<a class="code" href="a01173.html">atca_secureboot_mac_in_out_t</a> *param);</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00994.html#ga809ad14c1d8da45d5f74fa4c55373638">atcah_encode_counter_match</a>(uint32_t counter, uint8_t * counter_match);</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00994.html#gaa0df5937081037684ce2894a8cc2c1e5">atcah_io_decrypt</a>(<span class="keyword">struct</span> <a class="code" href="a01161.html">atca_io_decrypt_in_out</a> *param);</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;}</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;<span class="preprocessor">#endif //ATCA_HOST_H</span></div><div class="ttc" id="a01153_html"><div class="ttname"><a href="a01153.html">atca_include_data_in_out</a></div><div class="ttdoc">Input / output parameters for function atca_include_data().</div><div class="ttdef"><b>Definition:</b> atca_host.h:130</div></div>
<div class="ttc" id="a01205_html_ac76ac607fd679316fc17b16039a86b9c"><div class="ttname"><a href="a01205.html#ac76ac607fd679316fc17b16039a86b9c">atca_check_mac_in_out::other_data</a></div><div class="ttdeci">const uint8_t * other_data</div><div class="ttdoc">[in] OtherData, 13 bytes</div><div class="ttdef"><b>Definition:</b> atca_host.h:347</div></div>
<div class="ttc" id="a00994_html_ga30bc02410edabefa2e210709b00105de"><div class="ttname"><a href="a00994.html#ga30bc02410edabefa2e210709b00105de">atca_temp_key_t</a></div><div class="ttdeci">struct atca_temp_key atca_temp_key_t</div><div class="ttdoc">Structure to hold TempKey fields.</div></div>
<div class="ttc" id="a01185_html_ac76ac607fd679316fc17b16039a86b9c"><div class="ttname"><a href="a01185.html#ac76ac607fd679316fc17b16039a86b9c">atca_gen_dig_in_out::other_data</a></div><div class="ttdeci">const uint8_t * other_data</div><div class="ttdoc">[in] 32-byte value for shared nonce zone, 4-byte value if is_key_nomac is true, ignored and/or NULL o...</div><div class="ttdef"><b>Definition:</b> atca_host.h:279</div></div>
<div class="ttc" id="a00994_html_gad87f95f0faf0c6fdfe94040efcb14860"><div class="ttname"><a href="a00994.html#gad87f95f0faf0c6fdfe94040efcb14860">atca_include_data_in_out::p_temp</a></div><div class="ttdeci">uint8_t * p_temp</div><div class="ttdoc">[out] pointer to output buffer</div><div class="ttdef"><b>Definition:</b> atca_host.h:132</div></div>
<div class="ttc" id="a00994_html_ga75f7197e2840bcf9fe00722e739fdd9c"><div class="ttname"><a href="a00994.html#ga75f7197e2840bcf9fe00722e739fdd9c">atca_nonce_in_out::rand_out</a></div><div class="ttdeci">const uint8_t * rand_out</div><div class="ttdoc">[in] Pointer to 32-byte RandOut data from Nonce command.</div><div class="ttdef"><b>Definition:</b> atca_host.h:157</div></div>
<div class="ttc" id="a01189_html_a9f11512564ff4aeaf5f9d0646d971ed2"><div class="ttname"><a href="a01189.html#a9f11512564ff4aeaf5f9d0646d971ed2">atca_write_mac_in_out::auth_mac</a></div><div class="ttdeci">uint8_t * auth_mac</div><div class="ttdoc">Write MAC will be returned here. 32 bytes.</div><div class="ttdef"><b>Definition:</b> atca_host.h:293</div></div>
<div class="ttc" id="a01161_html_ad6bc120bffc64dfc5230863a8ba96596"><div class="ttname"><a href="a01161.html#ad6bc120bffc64dfc5230863a8ba96596">atca_io_decrypt_in_out::data_size</a></div><div class="ttdeci">size_t data_size</div><div class="ttdoc">Size of data in bytes (32 or 64).</div><div class="ttdef"><b>Definition:</b> atca_host.h:167</div></div>
<div class="ttc" id="a00994_html_gaa60674423eaa2e7f37f2c1cf2855f2d7"><div class="ttname"><a href="a00994.html#gaa60674423eaa2e7f37f2c1cf2855f2d7">atca_secureboot_enc_in_out_t</a></div><div class="ttdeci">struct atca_secureboot_enc_in_out atca_secureboot_enc_in_out_t</div></div>
<div class="ttc" id="a01197_html"><div class="ttname"><a href="a01197.html">atca_derive_key_mac_in_out</a></div><div class="ttdoc">Input/output parameters for function atcah_derive_key_mac().</div><div class="ttdef"><b>Definition:</b> atca_host.h:314</div></div>
<div class="ttc" id="a01185_html_a6ab45b7847bf9d25cc2be99b11641e5f"><div class="ttname"><a href="a01185.html#a6ab45b7847bf9d25cc2be99b11641e5f">atca_gen_dig_in_out::is_key_nomac</a></div><div class="ttdeci">bool is_key_nomac</div><div class="ttdoc">[in] Set to true if the slot pointed to be key_id has the SotConfig.NoMac bit set</div><div class="ttdef"><b>Definition:</b> atca_host.h:276</div></div>
<div class="ttc" id="a01205_html_a72fae3d62889ef224f09c57a7646e061"><div class="ttname"><a href="a01205.html#a72fae3d62889ef224f09c57a7646e061">atca_check_mac_in_out::temp_key</a></div><div class="ttdeci">struct atca_temp_key * temp_key</div><div class="ttdoc">[in,out] Current state of TempKey. Required if mode[0] or mode[1] are 1.</div><div class="ttdef"><b>Definition:</b> atca_host.h:353</div></div>
<div class="ttc" id="a01189_html_ac746c3d65092170bfaf5b0d9950d8438"><div class="ttname"><a href="a01189.html#ac746c3d65092170bfaf5b0d9950d8438">atca_write_mac_in_out::zone</a></div><div class="ttdeci">uint8_t zone</div><div class="ttdoc">Zone/Param1 for the Write or PrivWrite command.</div><div class="ttdef"><b>Definition:</b> atca_host.h:288</div></div>
<div class="ttc" id="a01217_html_aef45bac2efcd5394c4ed79f73ee16d23"><div class="ttname"><a href="a01217.html#aef45bac2efcd5394c4ed79f73ee16d23">atca_sign_internal_in_out::sn</a></div><div class="ttdeci">const uint8_t * sn</div><div class="ttdoc">[in] Device serial number SN[0:8] (9 bytes)</div><div class="ttdef"><b>Definition:</b> atca_host.h:405</div></div>
<div class="ttc" id="a01149_html_a7e432dd218a88686e01e0c43cda30d2b"><div class="ttname"><a href="a01149.html#a7e432dd218a88686e01e0c43cda30d2b">atca_temp_key::no_mac_flag</a></div><div class="ttdeci">unsigned no_mac_flag</div><div class="ttdoc">TempKey was derived from a key that has the NoMac bit set preventing the use of the MAC command....</div><div class="ttdef"><b>Definition:</b> atca_host.h:115</div></div>
<div class="ttc" id="a01185_html"><div class="ttname"><a href="a01185.html">atca_gen_dig_in_out</a></div><div class="ttdoc">Input/output parameters for function atcah_gen_dig().</div><div class="ttdef"><b>Definition:</b> atca_host.h:272</div></div>
<div class="ttc" id="a01197_html_a37e90f5e3bd99fac2021fb3a326607d4"><div class="ttname"><a href="a01197.html#a37e90f5e3bd99fac2021fb3a326607d4">atca_derive_key_mac_in_out::mode</a></div><div class="ttdeci">uint8_t mode</div><div class="ttdoc">Mode (param 1) of the derive key command.</div><div class="ttdef"><b>Definition:</b> atca_host.h:316</div></div>
<div class="ttc" id="a01185_html_a7871fda0cd5698905bc3aa8fe8a99808"><div class="ttname"><a href="a01185.html#a7871fda0cd5698905bc3aa8fe8a99808">atca_gen_dig_in_out::stored_value</a></div><div class="ttdeci">const uint8_t * stored_value</div><div class="ttdoc">[in] 32-byte slot value, config block, OTP block as specified by the Zone/KeyId parameters</div><div class="ttdef"><b>Definition:</b> atca_host.h:278</div></div>
<div class="ttc" id="a01165_html_a35388d4dff80916a7409fd0554ac58b6"><div class="ttname"><a href="a01165.html#a35388d4dff80916a7409fd0554ac58b6">atca_verify_mac::signature</a></div><div class="ttdeci">const uint8_t * signature</div><div class="ttdoc">Signature used in Verify command (64 bytes).</div><div class="ttdef"><b>Definition:</b> atca_host.h:174</div></div>
<div class="ttc" id="a01173_html"><div class="ttname"><a href="a01173.html">atca_secureboot_mac_in_out</a></div><div class="ttdef"><b>Definition:</b> atca_host.h:194</div></div>
<div class="ttc" id="a01213_html_a122aff75e4ff5cd19542117ba3fdb855"><div class="ttname"><a href="a01213.html#a122aff75e4ff5cd19542117ba3fdb855">atca_gen_key_in_out::public_key</a></div><div class="ttdeci">const uint8_t * public_key</div><div class="ttdoc">[in] Public key to be used in the PubKey digest. X and Y integers in big-endian format....</div><div class="ttdef"><b>Definition:</b> atca_host.h:384</div></div>
<div class="ttc" id="a01189_html_a72fae3d62889ef224f09c57a7646e061"><div class="ttname"><a href="a01189.html#a72fae3d62889ef224f09c57a7646e061">atca_write_mac_in_out::temp_key</a></div><div class="ttdeci">struct atca_temp_key * temp_key</div><div class="ttdoc">Current state of TempKey.</div><div class="ttdef"><b>Definition:</b> atca_host.h:294</div></div>
<div class="ttc" id="a01205_html_a430a448768d687a94e3daaa00dce63ce"><div class="ttname"><a href="a01205.html#a430a448768d687a94e3daaa00dce63ce">atca_check_mac_in_out::client_resp</a></div><div class="ttdeci">uint8_t * client_resp</div><div class="ttdoc">[out] Calculated ClientResp will be returned here.</div><div class="ttdef"><b>Definition:</b> atca_host.h:346</div></div>
<div class="ttc" id="a01205_html_a218f1c30c4a21b348dbe1817a2c14896"><div class="ttname"><a href="a01205.html#a218f1c30c4a21b348dbe1817a2c14896">atca_check_mac_in_out::client_chal</a></div><div class="ttdeci">const uint8_t * client_chal</div><div class="ttdoc">[in] ClientChal data, 32 bytes. Can be NULL if mode[0] is 1.</div><div class="ttdef"><b>Definition:</b> atca_host.h:345</div></div>
<div class="ttc" id="a01165_html_ac76ac607fd679316fc17b16039a86b9c"><div class="ttname"><a href="a01165.html#ac76ac607fd679316fc17b16039a86b9c">atca_verify_mac::other_data</a></div><div class="ttdeci">const uint8_t * other_data</div><div class="ttdoc">OtherData used in Verify command (19 bytes).</div><div class="ttdef"><b>Definition:</b> atca_host.h:175</div></div>
<div class="ttc" id="a00994_html_ga897821490d4d10e168f1c94cd67966e7"><div class="ttname"><a href="a00994.html#ga897821490d4d10e168f1c94cd67966e7">atca_check_mac_in_out_t</a></div><div class="ttdeci">struct atca_check_mac_in_out atca_check_mac_in_out_t</div><div class="ttdoc">Input/output parameters for function atcah_check_mac().</div></div>
<div class="ttc" id="a01217_html_a714b07e0515fd9d20714a4fc2a16c03e"><div class="ttname"><a href="a01217.html#a714b07e0515fd9d20714a4fc2a16c03e">atca_sign_internal_in_out::temp_key</a></div><div class="ttdeci">const struct atca_temp_key * temp_key</div><div class="ttdoc">[in] The current state of TempKey.</div><div class="ttdef"><b>Definition:</b> atca_host.h:406</div></div>
<div class="ttc" id="a00994_html_ga44361cadf1819cea687208eeadd57059"><div class="ttname"><a href="a00994.html#ga44361cadf1819cea687208eeadd57059">atcah_mac</a></div><div class="ttdeci">ATCA_STATUS atcah_mac(struct atca_mac_in_out *param)</div><div class="ttdoc">This function generates an SHA-256 digest (MAC) of a key, challenge, and other information.</div><div class="ttdef"><b>Definition:</b> atca_host.c:400</div></div>
<div class="ttc" id="a00994_html_ga03632bc31f21bec0d13d4f0cab198958"><div class="ttname"><a href="a00994.html#ga03632bc31f21bec0d13d4f0cab198958">atcah_verify_mac</a></div><div class="ttdeci">ATCA_STATUS atcah_verify_mac(atca_verify_mac_in_out_t *param)</div><div class="ttdoc">Calculate the expected MAC on the host side for the Verify command.</div><div class="ttdef"><b>Definition:</b> atca_host.c:227</div></div>
<div class="ttc" id="a00994_html_gacea547aa606ca17f8da337a1b58972a1"><div class="ttname"><a href="a00994.html#gacea547aa606ca17f8da337a1b58972a1">atca_verify_in_out::public_key</a></div><div class="ttdeci">const uint8_t * public_key</div><div class="ttdoc">[in] Pointer to the public key to be used for verification</div><div class="ttdef"><b>Definition:</b> atca_host.h:372</div></div>
<div class="ttc" id="a00359_html"><div class="ttname"><a href="a00359.html">cryptoauthlib.h</a></div><div class="ttdoc">Single aggregation point for all CryptoAuthLib header files.</div></div>
<div class="ttc" id="a01197_html_aa5a9ad86915dfcef6db90b858690212a"><div class="ttname"><a href="a01197.html#aa5a9ad86915dfcef6db90b858690212a">atca_derive_key_mac_in_out::mac</a></div><div class="ttdeci">uint8_t * mac</div><div class="ttdoc">DeriveKey MAC will be returned here.</div><div class="ttdef"><b>Definition:</b> atca_host.h:320</div></div>
<div class="ttc" id="a01173_html_a6abd57960eb27eecadcf1163a1441fb1"><div class="ttname"><a href="a01173.html#a6abd57960eb27eecadcf1163a1441fb1">atca_secureboot_mac_in_out::secure_boot_config</a></div><div class="ttdeci">uint16_t secure_boot_config</div><div class="ttdoc">SecureBootConfig value from configuration zone.</div><div class="ttdef"><b>Definition:</b> atca_host.h:198</div></div>
<div class="ttc" id="a00994_html_ga39d794a93edb13943760550086940fa4"><div class="ttname"><a href="a00994.html#ga39d794a93edb13943760550086940fa4">atca_verify_mac_in_out_t</a></div><div class="ttdeci">struct atca_verify_mac atca_verify_mac_in_out_t</div></div>
<div class="ttc" id="a01185_html_ac21eed4200889cc115d16a781871d01c"><div class="ttname"><a href="a01185.html#ac21eed4200889cc115d16a781871d01c">atca_gen_dig_in_out::key_id</a></div><div class="ttdeci">uint16_t key_id</div><div class="ttdoc">[in] KeyId/Param2 for the GenDig command</div><div class="ttdef"><b>Definition:</b> atca_host.h:275</div></div>
<div class="ttc" id="a00994_html_gab4d485e0545aa3defd75702fe51f9a13"><div class="ttname"><a href="a00994.html#gab4d485e0545aa3defd75702fe51f9a13">atca_verify_in_out_t</a></div><div class="ttdeci">struct atca_verify_in_out atca_verify_in_out_t</div></div>
<div class="ttc" id="a01205_html_a37e90f5e3bd99fac2021fb3a326607d4"><div class="ttname"><a href="a01205.html#a37e90f5e3bd99fac2021fb3a326607d4">atca_check_mac_in_out::mode</a></div><div class="ttdeci">uint8_t mode</div><div class="ttdoc">[in] CheckMac command Mode</div><div class="ttdef"><b>Definition:</b> atca_host.h:342</div></div>
<div class="ttc" id="a01193_html"><div class="ttname"><a href="a01193.html">atca_derive_key_in_out</a></div><div class="ttdoc">Input/output parameters for function atcah_derive_key().</div><div class="ttdef"><b>Definition:</b> atca_host.h:300</div></div>
<div class="ttc" id="a01161_html_a70a057043fcc9f4dc22455f6df43d710"><div class="ttname"><a href="a01161.html#a70a057043fcc9f4dc22455f6df43d710">atca_io_decrypt_in_out::out_nonce</a></div><div class="ttdeci">const uint8_t * out_nonce</div><div class="ttdoc">OutNonce returned from command (32 bytes).</div><div class="ttdef"><b>Definition:</b> atca_host.h:165</div></div>
<div class="ttc" id="a01165_html_abb42a6a187e06500b79b8bdbf097ef1c"><div class="ttname"><a href="a01165.html#abb42a6a187e06500b79b8bdbf097ef1c">atca_verify_mac::msg_dig_buf</a></div><div class="ttdeci">const uint8_t * msg_dig_buf</div><div class="ttdoc">Message digest buffer (64 bytes).</div><div class="ttdef"><b>Definition:</b> atca_host.h:176</div></div>
<div class="ttc" id="a01213_html_a72fae3d62889ef224f09c57a7646e061"><div class="ttname"><a href="a01213.html#a72fae3d62889ef224f09c57a7646e061">atca_gen_key_in_out::temp_key</a></div><div class="ttdeci">struct atca_temp_key * temp_key</div><div class="ttdoc">[in,out] As input the current state of TempKey. As output, the resulting PubKEy digest.</div><div class="ttdef"><b>Definition:</b> atca_host.h:388</div></div>
<div class="ttc" id="a01217_html_ac3544274ceb4f8950b3a5fe6640be634"><div class="ttname"><a href="a01217.html#ac3544274ceb4f8950b3a5fe6640be634">atca_sign_internal_in_out::for_invalidate</a></div><div class="ttdeci">bool for_invalidate</div><div class="ttdoc">[in] Set to true if this will be used for the Verify(Invalidate) command.</div><div class="ttdef"><b>Definition:</b> atca_host.h:404</div></div>
<div class="ttc" id="a00994_html_gae9d8a27e97696e2e02cea680ea44e3f2"><div class="ttname"><a href="a00994.html#gae9d8a27e97696e2e02cea680ea44e3f2">atca_nonce_in_out_t</a></div><div class="ttdeci">struct atca_nonce_in_out atca_nonce_in_out_t</div></div>
<div class="ttc" id="a00994_html_gaa17e031da4b22938bed1c21161ba371a"><div class="ttname"><a href="a00994.html#gaa17e031da4b22938bed1c21161ba371a">atca_nonce_in_out::temp_key</a></div><div class="ttdeci">struct atca_temp_key * temp_key</div><div class="ttdoc">[in,out] Pointer to TempKey structure.</div><div class="ttdef"><b>Definition:</b> atca_host.h:158</div></div>
<div class="ttc" id="a01149_html_a3f6d684924e3635e6e57441b66b98978"><div class="ttname"><a href="a01149.html#a3f6d684924e3635e6e57441b66b98978">atca_temp_key::is_64</a></div><div class="ttdeci">uint8_t is_64</div><div class="ttdoc">TempKey has 64 bytes of valid data.</div><div class="ttdef"><b>Definition:</b> atca_host.h:117</div></div>
<div class="ttc" id="a01217_html_af209160ffa65b538728640eb34e4be75"><div class="ttname"><a href="a01217.html#af209160ffa65b538728640eb34e4be75">atca_sign_internal_in_out::key_config</a></div><div class="ttdeci">uint16_t key_config</div><div class="ttdoc">[in] KeyConfig[TempKeyFlags.keyId]</div><div class="ttdef"><b>Definition:</b> atca_host.h:400</div></div>
<div class="ttc" id="a00994_html_ga4c89f8023aec521281824c0e35713baa"><div class="ttname"><a href="a00994.html#ga4c89f8023aec521281824c0e35713baa">atcah_secureboot_enc</a></div><div class="ttdeci">ATCA_STATUS atcah_secureboot_enc(atca_secureboot_enc_in_out_t *param)</div><div class="ttdoc">Encrypts the digest for the SecureBoot command when using the encrypted digest / validating mac optio...</div><div class="ttdef"><b>Definition:</b> atca_host.c:314</div></div>
<div class="ttc" id="a00994_html_ga5ed81b300bd0d04f88708ad122d3a53a"><div class="ttname"><a href="a00994.html#ga5ed81b300bd0d04f88708ad122d3a53a">atca_gen_dig_in_out_t</a></div><div class="ttdeci">struct atca_gen_dig_in_out atca_gen_dig_in_out_t</div><div class="ttdoc">Input/output parameters for function atcah_gen_dig().</div></div>
<div class="ttc" id="a01173_html_a35388d4dff80916a7409fd0554ac58b6"><div class="ttname"><a href="a01173.html#a35388d4dff80916a7409fd0554ac58b6">atca_secureboot_mac_in_out::signature</a></div><div class="ttdeci">const uint8_t * signature</div><div class="ttdoc">Signature (can be NULL if not required)</div><div class="ttdef"><b>Definition:</b> atca_host.h:201</div></div>
<div class="ttc" id="a01165_html_aa5a9ad86915dfcef6db90b858690212a"><div class="ttname"><a href="a01165.html#aa5a9ad86915dfcef6db90b858690212a">atca_verify_mac::mac</a></div><div class="ttdeci">uint8_t * mac</div><div class="ttdoc">Calculated verification MAC is returned here (32 bytes).</div><div class="ttdef"><b>Definition:</b> atca_host.h:180</div></div>
<div class="ttc" id="a01201_html"><div class="ttname"><a href="a01201.html">atca_decrypt_in_out</a></div><div class="ttdoc">Input/output parameters for function atca_decrypt().</div><div class="ttdef"><b>Definition:</b> atca_host.h:331</div></div>
<div class="ttc" id="a00994_html_ga804b097bbb0a7086f7d208390689146b"><div class="ttname"><a href="a00994.html#ga804b097bbb0a7086f7d208390689146b">atca_gen_key_in_out_t</a></div><div class="ttdeci">struct atca_gen_key_in_out atca_gen_key_in_out_t</div><div class="ttdoc">Input/output parameters for calculating the PubKey digest put into TempKey by the GenKey command with...</div></div>
<div class="ttc" id="a00173_html_a22bd6643f31f1d75dc3e7ea939f468cd"><div class="ttname"><a href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a></div><div class="ttdeci">ATCA_STATUS</div><div class="ttdef"><b>Definition:</b> atca_status.h:41</div></div>
<div class="ttc" id="a01165_html_ac21eed4200889cc115d16a781871d01c"><div class="ttname"><a href="a01165.html#ac21eed4200889cc115d16a781871d01c">atca_verify_mac::key_id</a></div><div class="ttdeci">uint16_t key_id</div><div class="ttdoc">KeyID (Param2) used in Verify command.</div><div class="ttdef"><b>Definition:</b> atca_host.h:173</div></div>
<div class="ttc" id="a00994_html_ga89408b8338dd9f43c4ba85b2a082c3ae"><div class="ttname"><a href="a00994.html#ga89408b8338dd9f43c4ba85b2a082c3ae">atcah_decrypt</a></div><div class="ttdeci">ATCA_STATUS atcah_decrypt(struct atca_decrypt_in_out *param)</div><div class="ttdoc">This function decrypts 32-byte encrypted data received with the Read command.</div><div class="ttdef"><b>Definition:</b> atca_host.c:1182</div></div>
<div class="ttc" id="a01217_html_a547704fabd162cdaa3d5ce84a111a3fc"><div class="ttname"><a href="a01217.html#a547704fabd162cdaa3d5ce84a111a3fc">atca_sign_internal_in_out::slot_config</a></div><div class="ttdeci">uint16_t slot_config</div><div class="ttdoc">[in] SlotConfig[TempKeyFlags.keyId]</div><div class="ttdef"><b>Definition:</b> atca_host.h:399</div></div>
<div class="ttc" id="a01185_html_aef45bac2efcd5394c4ed79f73ee16d23"><div class="ttname"><a href="a01185.html#aef45bac2efcd5394c4ed79f73ee16d23">atca_gen_dig_in_out::sn</a></div><div class="ttdeci">const uint8_t * sn</div><div class="ttdoc">[in] Device serial number SN[0:8]. Only SN[0:1] and SN[8] are required though.</div><div class="ttdef"><b>Definition:</b> atca_host.h:277</div></div>
<div class="ttc" id="a01197_html_a000599eef5677ed1279b025c42ae260e"><div class="ttname"><a href="a01197.html#a000599eef5677ed1279b025c42ae260e">atca_derive_key_mac_in_out::parent_key</a></div><div class="ttdeci">const uint8_t * parent_key</div><div class="ttdoc">Parent key to be used in the derive key calculation (32 bytes).</div><div class="ttdef"><b>Definition:</b> atca_host.h:319</div></div>
<div class="ttc" id="a00994_html_ga787a3ef3bd9a6feaf71b50fc127b619d"><div class="ttname"><a href="a00994.html#ga787a3ef3bd9a6feaf71b50fc127b619d">atca_io_decrypt_in_out_t</a></div><div class="ttdeci">struct atca_io_decrypt_in_out atca_io_decrypt_in_out_t</div></div>
<div class="ttc" id="a01217_html_ac21eed4200889cc115d16a781871d01c"><div class="ttname"><a href="a01217.html#ac21eed4200889cc115d16a781871d01c">atca_sign_internal_in_out::key_id</a></div><div class="ttdeci">uint16_t key_id</div><div class="ttdoc">[in] Sign KeyID</div><div class="ttdef"><b>Definition:</b> atca_host.h:398</div></div>
<div class="ttc" id="a00994_html_gad7e2217cd71b77b6c1b08f2f2f6f0a3e"><div class="ttname"><a href="a00994.html#gad7e2217cd71b77b6c1b08f2f2f6f0a3e">atcah_sha256</a></div><div class="ttdeci">ATCA_STATUS atcah_sha256(int32_t len, const uint8_t *message, uint8_t *digest)</div><div class="ttdoc">This function creates a SHA256 digest on a little-endian system.</div><div class="ttdef"><b>Definition:</b> atca_host.c:1230</div></div>
<div class="ttc" id="a01217_html_a0b448fbaa0c4f1770b7c3f53acf265c5"><div class="ttname"><a href="a01217.html#a0b448fbaa0c4f1770b7c3f53acf265c5">atca_sign_internal_in_out::digest</a></div><div class="ttdeci">uint8_t * digest</div><div class="ttdoc">[out] SHA256 digest of the full 55 byte message. Can be NULL if not required.</div><div class="ttdef"><b>Definition:</b> atca_host.h:409</div></div>
<div class="ttc" id="a01217_html_a04c0e9b276020bed4ed3d7d670ed3881"><div class="ttname"><a href="a01217.html#a04c0e9b276020bed4ed3d7d670ed3881">atca_sign_internal_in_out::verify_other_data</a></div><div class="ttdeci">uint8_t * verify_other_data</div><div class="ttdoc">[out] The 19 byte OtherData bytes to be used with the Verify(In/Validate) command....</div><div class="ttdef"><b>Definition:</b> atca_host.h:408</div></div>
<div class="ttc" id="a01149_html_a1f0f70b7f0590654fde170e1e392b4f7"><div class="ttname"><a href="a01149.html#a1f0f70b7f0590654fde170e1e392b4f7">atca_temp_key::gen_key_data</a></div><div class="ttdeci">unsigned gen_key_data</div><div class="ttdoc">TempKey was derived from the GenKey command (ATECC devices only).</div><div class="ttdef"><b>Definition:</b> atca_host.h:114</div></div>
<div class="ttc" id="a01149_html_a2ffc3c1a03eda290c709dc78b7e8b51e"><div class="ttname"><a href="a01149.html#a2ffc3c1a03eda290c709dc78b7e8b51e">atca_temp_key::source_flag</a></div><div class="ttdeci">unsigned source_flag</div><div class="ttdoc">Indicates id TempKey started from a random nonce (0) or not (1).</div><div class="ttdef"><b>Definition:</b> atca_host.h:112</div></div>
<div class="ttc" id="a00994_html_ga7276bd20c5842e712da638d25ceb6d92"><div class="ttname"><a href="a00994.html#ga7276bd20c5842e712da638d25ceb6d92">atca_include_data_in_out::sn</a></div><div class="ttdeci">const uint8_t * sn</div><div class="ttdoc">[in] pointer to serial number data</div><div class="ttdef"><b>Definition:</b> atca_host.h:134</div></div>
<div class="ttc" id="a01169_html_a130c5ab3a3f978b77641faa7813aa5d2"><div class="ttname"><a href="a01169.html#a130c5ab3a3f978b77641faa7813aa5d2">atca_secureboot_enc_in_out::io_key</a></div><div class="ttdeci">const uint8_t * io_key</div><div class="ttdoc">IO protection key value (32 bytes)</div><div class="ttdef"><b>Definition:</b> atca_host.h:186</div></div>
<div class="ttc" id="a01217_html_a0aea6a2aaa9c7c3368d6a394d4c9ae05"><div class="ttname"><a href="a01217.html#a0aea6a2aaa9c7c3368d6a394d4c9ae05">atca_sign_internal_in_out::use_flag</a></div><div class="ttdeci">uint8_t use_flag</div><div class="ttdoc">[in] UseFlag[TempKeyFlags.keyId], 0x00 for slots 8 and above and for ATECC508A</div><div class="ttdef"><b>Definition:</b> atca_host.h:401</div></div>
<div class="ttc" id="a01193_html_afca67d3e5d5a7c772262731cc08880b1"><div class="ttname"><a href="a01193.html#afca67d3e5d5a7c772262731cc08880b1">atca_derive_key_in_out::target_key</a></div><div class="ttdeci">uint8_t * target_key</div><div class="ttdoc">Derived key will be returned here (32 bytes).</div><div class="ttdef"><b>Definition:</b> atca_host.h:306</div></div>
<div class="ttc" id="a01197_html_aef45bac2efcd5394c4ed79f73ee16d23"><div class="ttname"><a href="a01197.html#aef45bac2efcd5394c4ed79f73ee16d23">atca_derive_key_mac_in_out::sn</a></div><div class="ttdeci">const uint8_t * sn</div><div class="ttdoc">Device serial number SN[0:8]. Only SN[0:1] and SN[8] are required though.</div><div class="ttdef"><b>Definition:</b> atca_host.h:318</div></div>
<div class="ttc" id="a01165_html_a37e90f5e3bd99fac2021fb3a326607d4"><div class="ttname"><a href="a01165.html#a37e90f5e3bd99fac2021fb3a326607d4">atca_verify_mac::mode</a></div><div class="ttdeci">uint8_t mode</div><div class="ttdoc">Mode (Param1) parameter used in Verify command.</div><div class="ttdef"><b>Definition:</b> atca_host.h:172</div></div>
<div class="ttc" id="a01189_html_a8c2a094baeab96152cea462ba9677887"><div class="ttname"><a href="a01189.html#a8c2a094baeab96152cea462ba9677887">atca_write_mac_in_out::encrypted_data</a></div><div class="ttdeci">uint8_t * encrypted_data</div><div class="ttdoc">Encrypted version of input_data will be returned here. 32 bytes for Write command,...</div><div class="ttdef"><b>Definition:</b> atca_host.h:292</div></div>
<div class="ttc" id="a01165_html_aef45bac2efcd5394c4ed79f73ee16d23"><div class="ttname"><a href="a01165.html#aef45bac2efcd5394c4ed79f73ee16d23">atca_verify_mac::sn</a></div><div class="ttdeci">const uint8_t * sn</div><div class="ttdoc">Serial number (9 bytes).</div><div class="ttdef"><b>Definition:</b> atca_host.h:178</div></div>
<div class="ttc" id="a01169_html_a4e3f2b3f58d04cbc9d85d936b039170e"><div class="ttname"><a href="a01169.html#a4e3f2b3f58d04cbc9d85d936b039170e">atca_secureboot_enc_in_out::hashed_key</a></div><div class="ttdeci">uint8_t * hashed_key</div><div class="ttdoc">Calculated key is returned here (32 bytes)</div><div class="ttdef"><b>Definition:</b> atca_host.h:189</div></div>
<div class="ttc" id="a01217_html_a4a25483bf435220f212cbe8f0327b0a6"><div class="ttname"><a href="a01217.html#a4a25483bf435220f212cbe8f0327b0a6">atca_sign_internal_in_out::update_count</a></div><div class="ttdeci">uint8_t update_count</div><div class="ttdoc">[in] UpdateCount[TempKeyFlags.keyId], 0x00 for slots 8 and above and for ATECC508A</div><div class="ttdef"><b>Definition:</b> atca_host.h:402</div></div>
<div class="ttc" id="a01185_html_ac746c3d65092170bfaf5b0d9950d8438"><div class="ttname"><a href="a01185.html#ac746c3d65092170bfaf5b0d9950d8438">atca_gen_dig_in_out::zone</a></div><div class="ttdeci">uint8_t zone</div><div class="ttdoc">[in] Zone/Param1 for the GenDig command</div><div class="ttdef"><b>Definition:</b> atca_host.h:274</div></div>
<div class="ttc" id="a01213_html_aef45bac2efcd5394c4ed79f73ee16d23"><div class="ttname"><a href="a01213.html#aef45bac2efcd5394c4ed79f73ee16d23">atca_gen_key_in_out::sn</a></div><div class="ttdeci">const uint8_t * sn</div><div class="ttdoc">[in] Device serial number SN[0:8] (9 bytes). Only SN[0:1] and SN[8] are required though.</div><div class="ttdef"><b>Definition:</b> atca_host.h:387</div></div>
<div class="ttc" id="a00994_html_ga680045caed6e8f6e136e1a2dc3fe1c9e"><div class="ttname"><a href="a00994.html#ga680045caed6e8f6e136e1a2dc3fe1c9e">atcah_sign_internal_msg</a></div><div class="ttdeci">ATCA_STATUS atcah_sign_internal_msg(ATCADeviceType device_type, struct atca_sign_internal_in_out *param)</div><div class="ttdoc">Builds the full message that would be signed by the Sign(Internal) command.</div><div class="ttdef"><b>Definition:</b> atca_host.c:1360</div></div>
<div class="ttc" id="a00994_html_ga9be4eee4ac6c9248a824d093f165839e"><div class="ttname"><a href="a00994.html#ga9be4eee4ac6c9248a824d093f165839e">atca_verify_in_out::curve_type</a></div><div class="ttdeci">uint16_t curve_type</div><div class="ttdoc">[in] Curve type used in Verify command (Param2).</div><div class="ttdef"><b>Definition:</b> atca_host.h:370</div></div>
<div class="ttc" id="a00994_html_gad456d2c1172343bb40d8cd0e391d44f4"><div class="ttname"><a href="a00994.html#gad456d2c1172343bb40d8cd0e391d44f4">atcah_include_data</a></div><div class="ttdeci">uint8_t * atcah_include_data(struct atca_include_data_in_out *param)</div><div class="ttdoc">This function copies otp and sn data into a command buffer.</div><div class="ttdef"><b>Definition:</b> atca_host.c:37</div></div>
<div class="ttc" id="a00994_html_gaa795bec90432fbfa194913d8b4098fab"><div class="ttname"><a href="a00994.html#gaa795bec90432fbfa194913d8b4098fab">atcah_secureboot_mac</a></div><div class="ttdeci">ATCA_STATUS atcah_secureboot_mac(atca_secureboot_mac_in_out_t *param)</div><div class="ttdoc">Calculates the expected MAC returned from the SecureBoot command when verification is a success.</div><div class="ttdef"><b>Definition:</b> atca_host.c:350</div></div>
<div class="ttc" id="a00994_html_ga3eedc11953a89e931ede529eb72592ac"><div class="ttname"><a href="a00994.html#ga3eedc11953a89e931ede529eb72592ac">atca_mac_in_out::key_id</a></div><div class="ttdeci">uint16_t key_id</div><div class="ttdoc">[in] KeyID parameter used in MAC command (Param2).</div><div class="ttdef"><b>Definition:</b> atca_host.h:230</div></div>
<div class="ttc" id="a01189_html_a699b6e4448b505a2664025ccca3522f5"><div class="ttname"><a href="a01189.html#a699b6e4448b505a2664025ccca3522f5">atca_write_mac_in_out::input_data</a></div><div class="ttdeci">const uint8_t * input_data</div><div class="ttdoc">Data to be encrypted. 32 bytes for Write command, 36 bytes for PrivWrite command.</div><div class="ttdef"><b>Definition:</b> atca_host.h:291</div></div>
<div class="ttc" id="a00994_html_ga6f6043ba8eebbaab6e6f3b4fa5e31ad4"><div class="ttname"><a href="a00994.html#ga6f6043ba8eebbaab6e6f3b4fa5e31ad4">atcah_gen_dig</a></div><div class="ttdeci">ATCA_STATUS atcah_gen_dig(struct atca_gen_dig_in_out *param)</div><div class="ttdoc">This function combines the current TempKey with a stored value.</div><div class="ttdef"><b>Definition:</b> atca_host.c:696</div></div>
<div class="ttc" id="a01205_html_ac21eed4200889cc115d16a781871d01c"><div class="ttname"><a href="a01205.html#ac21eed4200889cc115d16a781871d01c">atca_check_mac_in_out::key_id</a></div><div class="ttdeci">uint16_t key_id</div><div class="ttdoc">[in] CheckMac command KeyID</div><div class="ttdef"><b>Definition:</b> atca_host.h:343</div></div>
<div class="ttc" id="a00994_html_ga88d82c85f774fa04ccf768e566fec194"><div class="ttname"><a href="a00994.html#ga88d82c85f774fa04ccf768e566fec194">atca_mac_in_out::challenge</a></div><div class="ttdeci">const uint8_t * challenge</div><div class="ttdoc">[in] Pointer to 32-byte Challenge data used in MAC command, depending on mode.</div><div class="ttdef"><b>Definition:</b> atca_host.h:231</div></div>
<div class="ttc" id="a01193_html_a41104a8c85cd12c0fde0d791c3276a48"><div class="ttname"><a href="a01193.html#a41104a8c85cd12c0fde0d791c3276a48">atca_derive_key_in_out::target_key_id</a></div><div class="ttdeci">uint16_t target_key_id</div><div class="ttdoc">Key ID (param 2) of the target slot to run the command on.</div><div class="ttdef"><b>Definition:</b> atca_host.h:303</div></div>
<div class="ttc" id="a00994_html_ga60fc543b3df6fa1dedfbf59e5bde554b"><div class="ttname"><a href="a00994.html#ga60fc543b3df6fa1dedfbf59e5bde554b">atcah_derive_key_mac</a></div><div class="ttdeci">ATCA_STATUS atcah_derive_key_mac(struct atca_derive_key_mac_in_out *param)</div><div class="ttdoc">This function calculates the input MAC for a DeriveKey command.</div><div class="ttdef"><b>Definition:</b> atca_host.c:1123</div></div>
<div class="ttc" id="a01209_html"><div class="ttname"><a href="a01209.html">atca_verify_in_out</a></div><div class="ttdoc">Input/output parameters for function atcah_verify().</div><div class="ttdef"><b>Definition:</b> atca_host.h:368</div></div>
<div class="ttc" id="a00994_html_ga47853951c57803eff1432780bf360057"><div class="ttname"><a href="a00994.html#ga47853951c57803eff1432780bf360057">atcah_write_auth_mac</a></div><div class="ttdeci">ATCA_STATUS atcah_write_auth_mac(struct atca_write_mac_in_out *param)</div><div class="ttdoc">This function calculates the input MAC for the Write command.</div><div class="ttdef"><b>Definition:</b> atca_host.c:876</div></div>
<div class="ttc" id="a00994_html_ga809ad14c1d8da45d5f74fa4c55373638"><div class="ttname"><a href="a00994.html#ga809ad14c1d8da45d5f74fa4c55373638">atcah_encode_counter_match</a></div><div class="ttdeci">ATCA_STATUS atcah_encode_counter_match(uint32_t counter, uint8_t *counter_match)</div><div class="ttdoc">Builds the counter match value that needs to be stored in a slot.</div><div class="ttdef"><b>Definition:</b> atca_host.c:1447</div></div>
<div class="ttc" id="a01161_html"><div class="ttname"><a href="a01161.html">atca_io_decrypt_in_out</a></div><div class="ttdef"><b>Definition:</b> atca_host.h:162</div></div>
<div class="ttc" id="a00994_html_gab17435577e546d2954bd697f21e6d3cc"><div class="ttname"><a href="a00994.html#gab17435577e546d2954bd697f21e6d3cc">atcah_hmac</a></div><div class="ttdeci">ATCA_STATUS atcah_hmac(struct atca_hmac_in_out *param)</div><div class="ttdoc">This function generates an HMAC / SHA-256 hash of a key and other information.</div><div class="ttdef"><b>Definition:</b> atca_host.c:585</div></div>
<div class="ttc" id="a01149_html_ae687014ee9436f24d700229432e7edfd"><div class="ttname"><a href="a01149.html#ae687014ee9436f24d700229432e7edfd">atca_temp_key::key_id</a></div><div class="ttdeci">unsigned key_id</div><div class="ttdoc">If TempKey was derived from a slot or transport key (GenDig or GenKey), that key ID is saved here.</div><div class="ttdef"><b>Definition:</b> atca_host.h:111</div></div>
<div class="ttc" id="a01149_html_a0ea476753a7de128cb33adb56e0692c6"><div class="ttname"><a href="a01149.html#a0ea476753a7de128cb33adb56e0692c6">atca_temp_key::gen_dig_data</a></div><div class="ttdeci">unsigned gen_dig_data</div><div class="ttdoc">TempKey was derived from the GenDig command.</div><div class="ttdef"><b>Definition:</b> atca_host.h:113</div></div>
<div class="ttc" id="a01205_html_a4510889ef4b42470bf1a1d4e940a19a9"><div class="ttname"><a href="a01205.html#a4510889ef4b42470bf1a1d4e940a19a9">atca_check_mac_in_out::otp</a></div><div class="ttdeci">const uint8_t * otp</div><div class="ttdoc">[in] First 8 bytes of the OTP zone data. Can be NULL is mode[5] is 0.</div><div class="ttdef"><b>Definition:</b> atca_host.h:348</div></div>
<div class="ttc" id="a01161_html_abe222f6d3581e7920dcad5306cc906a8"><div class="ttname"><a href="a01161.html#abe222f6d3581e7920dcad5306cc906a8">atca_io_decrypt_in_out::data</a></div><div class="ttdeci">uint8_t * data</div><div class="ttdoc">As input, encrypted data. As output, decrypted data.</div><div class="ttdef"><b>Definition:</b> atca_host.h:166</div></div>
<div class="ttc" id="a00994_html_ga43ef2dc1159f28fbb100a2b9bf150c0c"><div class="ttname"><a href="a00994.html#ga43ef2dc1159f28fbb100a2b9bf150c0c">atcah_gen_mac</a></div><div class="ttdeci">ATCA_STATUS atcah_gen_mac(struct atca_gen_dig_in_out *param)</div><div class="ttdoc">This function generates mac with session key with a plain text.</div><div class="ttdef"><b>Definition:</b> atca_host.c:796</div></div>
<div class="ttc" id="a00994_html_gab0d96f9d852c2058c2546a1338e87544"><div class="ttname"><a href="a00994.html#gab0d96f9d852c2058c2546a1338e87544">atca_mac_in_out::key</a></div><div class="ttdeci">const uint8_t * key</div><div class="ttdoc">[in] Pointer to 32-byte key used to generate MAC digest.</div><div class="ttdef"><b>Definition:</b> atca_host.h:232</div></div>
<div class="ttc" id="a01213_html_a37e90f5e3bd99fac2021fb3a326607d4"><div class="ttname"><a href="a01213.html#a37e90f5e3bd99fac2021fb3a326607d4">atca_gen_key_in_out::mode</a></div><div class="ttdeci">uint8_t mode</div><div class="ttdoc">[in] GenKey Mode</div><div class="ttdef"><b>Definition:</b> atca_host.h:382</div></div>
<div class="ttc" id="a00994_html_gace9a9d1e2e34d294e573098600b6f061"><div class="ttname"><a href="a00994.html#gace9a9d1e2e34d294e573098600b6f061">atca_secureboot_mac_in_out_t</a></div><div class="ttdeci">struct atca_secureboot_mac_in_out atca_secureboot_mac_in_out_t</div></div>
<div class="ttc" id="a00994_html_ga8712cb73a4d6b370658d8bc9a77fba3e"><div class="ttname"><a href="a00994.html#ga8712cb73a4d6b370658d8bc9a77fba3e">atca_include_data_in_out::otp</a></div><div class="ttdeci">const uint8_t * otp</div><div class="ttdoc">[in] pointer to one-time-programming data</div><div class="ttdef"><b>Definition:</b> atca_host.h:133</div></div>
<div class="ttc" id="a01161_html_a130c5ab3a3f978b77641faa7813aa5d2"><div class="ttname"><a href="a01161.html#a130c5ab3a3f978b77641faa7813aa5d2">atca_io_decrypt_in_out::io_key</a></div><div class="ttdeci">const uint8_t * io_key</div><div class="ttdoc">IO protection key (32 bytes).</div><div class="ttdef"><b>Definition:</b> atca_host.h:164</div></div>
<div class="ttc" id="a00994_html_ga316e7eeaeedc7a30824294280488e24e"><div class="ttname"><a href="a00994.html#ga316e7eeaeedc7a30824294280488e24e">atcah_config_to_sign_internal</a></div><div class="ttdeci">ATCA_STATUS atcah_config_to_sign_internal(ATCADeviceType device_type, struct atca_sign_internal_in_out *param, const uint8_t *config)</div><div class="ttdoc">Populate the slot_config, key_config, and is_slot_locked fields in the atca_sign_internal_in_out stru...</div><div class="ttdef"><b>Definition:</b> atca_host.c:1311</div></div>
<div class="ttc" id="a01181_html"><div class="ttname"><a href="a01181.html">atca_hmac_in_out</a></div><div class="ttdoc">Input/output parameters for function atca_hmac().</div><div class="ttdef"><b>Definition:</b> atca_host.h:257</div></div>
<div class="ttc" id="a01217_html"><div class="ttname"><a href="a01217.html">atca_sign_internal_in_out</a></div><div class="ttdoc">Input/output parameters for calculating the message and digest used by the Sign(internal) command....</div><div class="ttdef"><b>Definition:</b> atca_host.h:395</div></div>
<div class="ttc" id="a00994_html_ga21e3f5ec2d0765d3e98432c4e8498350"><div class="ttname"><a href="a00994.html#ga21e3f5ec2d0765d3e98432c4e8498350">atca_mac_in_out_t</a></div><div class="ttdeci">struct atca_mac_in_out atca_mac_in_out_t</div></div>
<div class="ttc" id="a00994_html_gaa0df5937081037684ce2894a8cc2c1e5"><div class="ttname"><a href="a00994.html#gaa0df5937081037684ce2894a8cc2c1e5">atcah_io_decrypt</a></div><div class="ttdeci">ATCA_STATUS atcah_io_decrypt(struct atca_io_decrypt_in_out *param)</div><div class="ttdoc">Decrypt data that's been encrypted by the IO protection key. The ECDH and KDF commands on the ATECC60...</div><div class="ttdef"><b>Definition:</b> atca_host.c:186</div></div>
<div class="ttc" id="a01213_html_ac21eed4200889cc115d16a781871d01c"><div class="ttname"><a href="a01213.html#ac21eed4200889cc115d16a781871d01c">atca_gen_key_in_out::key_id</a></div><div class="ttdeci">uint16_t key_id</div><div class="ttdoc">[in] GenKey KeyID</div><div class="ttdef"><b>Definition:</b> atca_host.h:383</div></div>
<div class="ttc" id="a01205_html"><div class="ttname"><a href="a01205.html">atca_check_mac_in_out</a></div><div class="ttdoc">Input/output parameters for function atcah_check_mac().</div><div class="ttdef"><b>Definition:</b> atca_host.h:340</div></div>
<div class="ttc" id="a01173_html_a1f1ddb903087eec963d0faf82a3283a4"><div class="ttname"><a href="a01173.html#a1f1ddb903087eec963d0faf82a3283a4">atca_secureboot_mac_in_out::hashed_key</a></div><div class="ttdeci">const uint8_t * hashed_key</div><div class="ttdoc">Hashed key. SHA256(IO Protection Key | TempKey)</div><div class="ttdef"><b>Definition:</b> atca_host.h:199</div></div>
<div class="ttc" id="a01217_html_afaeb2ef8df7a105b7f93a9fdb82fd6e8"><div class="ttname"><a href="a01217.html#afaeb2ef8df7a105b7f93a9fdb82fd6e8">atca_sign_internal_in_out::is_slot_locked</a></div><div class="ttdeci">bool is_slot_locked</div><div class="ttdoc">[in] Is TempKeyFlags.keyId slot locked.</div><div class="ttdef"><b>Definition:</b> atca_host.h:403</div></div>
<div class="ttc" id="a01173_html_aa5a9ad86915dfcef6db90b858690212a"><div class="ttname"><a href="a01173.html#aa5a9ad86915dfcef6db90b858690212a">atca_secureboot_mac_in_out::mac</a></div><div class="ttdeci">uint8_t * mac</div><div class="ttdoc">MAC is returned here.</div><div class="ttdef"><b>Definition:</b> atca_host.h:202</div></div>
<div class="ttc" id="a00994_html_gafeefb2141ebb14988f08eb86f7cd6608"><div class="ttname"><a href="a00994.html#gafeefb2141ebb14988f08eb86f7cd6608">atca_write_mac_in_out_t</a></div><div class="ttdeci">struct atca_write_mac_in_out atca_write_mac_in_out_t</div><div class="ttdoc">Input/output parameters for function atcah_write_auth_mac() and atcah_privwrite_auth_mac().</div></div>
<div class="ttc" id="a00994_html_ga876993158b491f4626155b468ffb6edc"><div class="ttname"><a href="a00994.html#ga876993158b491f4626155b468ffb6edc">atca_nonce_in_out::zero</a></div><div class="ttdeci">uint16_t zero</div><div class="ttdoc">[in] Zero parameter used in Nonce command (Param2).</div><div class="ttdef"><b>Definition:</b> atca_host.h:155</div></div>
<div class="ttc" id="a01165_html_a130c5ab3a3f978b77641faa7813aa5d2"><div class="ttname"><a href="a01165.html#a130c5ab3a3f978b77641faa7813aa5d2">atca_verify_mac::io_key</a></div><div class="ttdeci">const uint8_t * io_key</div><div class="ttdoc">IO protection key value (32 bytes).</div><div class="ttdef"><b>Definition:</b> atca_host.h:177</div></div>
<div class="ttc" id="a01193_html_a37e90f5e3bd99fac2021fb3a326607d4"><div class="ttname"><a href="a01193.html#a37e90f5e3bd99fac2021fb3a326607d4">atca_derive_key_in_out::mode</a></div><div class="ttdeci">uint8_t mode</div><div class="ttdoc">Mode (param 1) of the derive key command.</div><div class="ttdef"><b>Definition:</b> atca_host.h:302</div></div>
<div class="ttc" id="a00994_html_gabf2abd4bd62f47537756c9ab109050c0"><div class="ttname"><a href="a00994.html#gabf2abd4bd62f47537756c9ab109050c0">atcah_gen_key_msg</a></div><div class="ttdeci">ATCA_STATUS atcah_gen_key_msg(struct atca_gen_key_in_out *param)</div><div class="ttdoc">Calculate the PubKey digest created by GenKey and saved to TempKey.</div><div class="ttdef"><b>Definition:</b> atca_host.c:1242</div></div>
<div class="ttc" id="a01185_html_a72fae3d62889ef224f09c57a7646e061"><div class="ttname"><a href="a01185.html#a72fae3d62889ef224f09c57a7646e061">atca_gen_dig_in_out::temp_key</a></div><div class="ttdeci">struct atca_temp_key * temp_key</div><div class="ttdoc">[inout] Current state of TempKey</div><div class="ttdef"><b>Definition:</b> atca_host.h:280</div></div>
<div class="ttc" id="a01193_html_aef45bac2efcd5394c4ed79f73ee16d23"><div class="ttname"><a href="a01193.html#aef45bac2efcd5394c4ed79f73ee16d23">atca_derive_key_in_out::sn</a></div><div class="ttdeci">const uint8_t * sn</div><div class="ttdoc">Device serial number SN[0:8]. Only SN[0:1] and SN[8] are required though.</div><div class="ttdef"><b>Definition:</b> atca_host.h:304</div></div>
<div class="ttc" id="a01149_html"><div class="ttname"><a href="a01149.html">atca_temp_key</a></div><div class="ttdoc">Structure to hold TempKey fields.</div><div class="ttdef"><b>Definition:</b> atca_host.h:108</div></div>
<div class="ttc" id="a00994_html_ga1a6b6fb557d8d37d59700faf4e4c9167"><div class="ttname"><a href="a00994.html#ga1a6b6fb557d8d37d59700faf4e4c9167">atca_nonce_in_out::mode</a></div><div class="ttdeci">uint8_t mode</div><div class="ttdoc">[in] Mode parameter used in Nonce command (Param1).</div><div class="ttdef"><b>Definition:</b> atca_host.h:154</div></div>
<div class="ttc" id="a00994_html_ga9ee18575f8b4c1560f9e5c741403ef1b"><div class="ttname"><a href="a00994.html#ga9ee18575f8b4c1560f9e5c741403ef1b">atcah_nonce</a></div><div class="ttdeci">ATCA_STATUS atcah_nonce(struct atca_nonce_in_out *param)</div><div class="ttdoc">This function calculates host side nonce with the parameters passed.</div><div class="ttdef"><b>Definition:</b> atca_host.c:96</div></div>
<div class="ttc" id="a00994_html_ga4155a23e70d1bf07de5d316efebeaee7"><div class="ttname"><a href="a00994.html#ga4155a23e70d1bf07de5d316efebeaee7">atca_decrypt_in_out::crypto_data</a></div><div class="ttdeci">uint8_t * crypto_data</div><div class="ttdoc">[in,out] Pointer to 32-byte data. Input encrypted data from Read command (Contents field),...</div><div class="ttdef"><b>Definition:</b> atca_host.h:333</div></div>
<div class="ttc" id="a01173_html_a16a7565b150a9c17a39c80fc932b9514"><div class="ttname"><a href="a01173.html#a16a7565b150a9c17a39c80fc932b9514">atca_secureboot_mac_in_out::param2</a></div><div class="ttdeci">uint16_t param2</div><div class="ttdoc">SecureBoot param2.</div><div class="ttdef"><b>Definition:</b> atca_host.h:197</div></div>
<div class="ttc" id="a01169_html_a714b07e0515fd9d20714a4fc2a16c03e"><div class="ttname"><a href="a01169.html#a714b07e0515fd9d20714a4fc2a16c03e">atca_secureboot_enc_in_out::temp_key</a></div><div class="ttdeci">const struct atca_temp_key * temp_key</div><div class="ttdoc">Current value of TempKey.</div><div class="ttdef"><b>Definition:</b> atca_host.h:187</div></div>
<div class="ttc" id="a00994_html_ga02b3479eaee1bd1741675c2a1249ffda"><div class="ttname"><a href="a00994.html#ga02b3479eaee1bd1741675c2a1249ffda">atcah_derive_key</a></div><div class="ttdeci">ATCA_STATUS atcah_derive_key(struct atca_derive_key_in_out *param)</div><div class="ttdoc">This function derives a key with a key and TempKey.</div><div class="ttdef"><b>Definition:</b> atca_host.c:1048</div></div>
<div class="ttc" id="a01173_html_aff3a2b64b0d86058508f766de59438d1"><div class="ttname"><a href="a01173.html#aff3a2b64b0d86058508f766de59438d1">atca_secureboot_mac_in_out::digest</a></div><div class="ttdeci">const uint8_t * digest</div><div class="ttdoc">Digest (unencrypted)</div><div class="ttdef"><b>Definition:</b> atca_host.h:200</div></div>
<div class="ttc" id="a01213_html"><div class="ttname"><a href="a01213.html">atca_gen_key_in_out</a></div><div class="ttdoc">Input/output parameters for calculating the PubKey digest put into TempKey by the GenKey command with...</div><div class="ttdef"><b>Definition:</b> atca_host.h:380</div></div>
<div class="ttc" id="a00994_html_gac97246a9059d3f687edfcbe5abfc5d8f"><div class="ttname"><a href="a00994.html#gac97246a9059d3f687edfcbe5abfc5d8f">atca_verify_in_out::signature</a></div><div class="ttdeci">const uint8_t * signature</div><div class="ttdoc">[in] Pointer to ECDSA signature to be verified</div><div class="ttdef"><b>Definition:</b> atca_host.h:371</div></div>
<div class="ttc" id="a01205_html_aa23b467edf1809a2a8b1b530a0159c45"><div class="ttname"><a href="a01205.html#aa23b467edf1809a2a8b1b530a0159c45">atca_check_mac_in_out::slot_key</a></div><div class="ttdeci">const uint8_t * slot_key</div><div class="ttdef"><b>Definition:</b> atca_host.h:349</div></div>
<div class="ttc" id="a01165_html_a7a67318a2d1cde0794d2d1ae152c93cf"><div class="ttname"><a href="a01165.html#a7a67318a2d1cde0794d2d1ae152c93cf">atca_verify_mac::temp_key</a></div><div class="ttdeci">const atca_temp_key_t * temp_key</div><div class="ttdoc">TempKey.</div><div class="ttdef"><b>Definition:</b> atca_host.h:179</div></div>
<div class="ttc" id="a01189_html_ac21eed4200889cc115d16a781871d01c"><div class="ttname"><a href="a01189.html#ac21eed4200889cc115d16a781871d01c">atca_write_mac_in_out::key_id</a></div><div class="ttdeci">uint16_t key_id</div><div class="ttdoc">KeyID/Param2 for the Write or PrivWrite command.</div><div class="ttdef"><b>Definition:</b> atca_host.h:289</div></div>
<div class="ttc" id="a01173_html_a37e90f5e3bd99fac2021fb3a326607d4"><div class="ttname"><a href="a01173.html#a37e90f5e3bd99fac2021fb3a326607d4">atca_secureboot_mac_in_out::mode</a></div><div class="ttdeci">uint8_t mode</div><div class="ttdoc">SecureBoot mode (param1)</div><div class="ttdef"><b>Definition:</b> atca_host.h:196</div></div>
<div class="ttc" id="a01205_html_ab15c5e89189b9eea6fab7da58cc03967"><div class="ttname"><a href="a01205.html#ab15c5e89189b9eea6fab7da58cc03967">atca_check_mac_in_out::target_key</a></div><div class="ttdeci">const uint8_t * target_key</div><div class="ttdef"><b>Definition:</b> atca_host.h:352</div></div>
<div class="ttc" id="a00988_html_gafb234ccd6a80d09c0efbe336c2354267"><div class="ttname"><a href="a00988.html#gafb234ccd6a80d09c0efbe336c2354267">ATCADeviceType</a></div><div class="ttdeci">ATCADeviceType</div><div class="ttdoc">The supported Device type in Cryptoauthlib library.</div><div class="ttdef"><b>Definition:</b> atca_devtypes.h:41</div></div>
<div class="ttc" id="a00994_html_gafdb82fc57fb953626c28c757a5220274"><div class="ttname"><a href="a00994.html#gafdb82fc57fb953626c28c757a5220274">atca_sign_internal_in_out_t</a></div><div class="ttdeci">struct atca_sign_internal_in_out atca_sign_internal_in_out_t</div><div class="ttdoc">Input/output parameters for calculating the message and digest used by the Sign(internal) command....</div></div>
<div class="ttc" id="a01169_html"><div class="ttname"><a href="a01169.html">atca_secureboot_enc_in_out</a></div><div class="ttdef"><b>Definition:</b> atca_host.h:184</div></div>
<div class="ttc" id="a01217_html_a35f4a3225daf3021decdc4ecea74fa46"><div class="ttname"><a href="a01217.html#a35f4a3225daf3021decdc4ecea74fa46">atca_sign_internal_in_out::message</a></div><div class="ttdeci">uint8_t * message</div><div class="ttdoc">[out] Full 55 byte message the Sign(internal) command will build. Can be NULL if not required.</div><div class="ttdef"><b>Definition:</b> atca_host.h:407</div></div>
<div class="ttc" id="a01157_html"><div class="ttname"><a href="a01157.html">atca_nonce_in_out</a></div><div class="ttdoc">Input/output parameters for function atca_nonce().</div><div class="ttdef"><b>Definition:</b> atca_host.h:152</div></div>
<div class="ttc" id="a01213_html_aeaa21ee86ed67c665d190be7d12293c7"><div class="ttname"><a href="a01213.html#aeaa21ee86ed67c665d190be7d12293c7">atca_gen_key_in_out::public_key_size</a></div><div class="ttdeci">size_t public_key_size</div><div class="ttdoc">[in] Total number of bytes in the public key. 64 bytes for P256 curve.</div><div class="ttdef"><b>Definition:</b> atca_host.h:385</div></div>
<div class="ttc" id="a00994_html_gaed8aa58875c6bdf46a937313e69c6ebb"><div class="ttname"><a href="a00994.html#gaed8aa58875c6bdf46a937313e69c6ebb">atcah_privwrite_auth_mac</a></div><div class="ttdeci">ATCA_STATUS atcah_privwrite_auth_mac(struct atca_write_mac_in_out *param)</div><div class="ttdoc">This function calculates the input MAC for the PrivWrite command.</div><div class="ttdef"><b>Definition:</b> atca_host.c:951</div></div>
<div class="ttc" id="a01197_html_a41104a8c85cd12c0fde0d791c3276a48"><div class="ttname"><a href="a01197.html#a41104a8c85cd12c0fde0d791c3276a48">atca_derive_key_mac_in_out::target_key_id</a></div><div class="ttdeci">uint16_t target_key_id</div><div class="ttdoc">Key ID (param 2) of the target slot to run the command on.</div><div class="ttdef"><b>Definition:</b> atca_host.h:317</div></div>
<div class="ttc" id="a00994_html_ga5b457cd0ccba73864eee4030b6079ba7"><div class="ttname"><a href="a00994.html#ga5b457cd0ccba73864eee4030b6079ba7">atcah_check_mac</a></div><div class="ttdeci">ATCA_STATUS atcah_check_mac(struct atca_check_mac_in_out *param)</div><div class="ttdoc">This function performs the checkmac operation to generate client response on the host side .</div><div class="ttdef"><b>Definition:</b> atca_host.c:481</div></div>
<div class="ttc" id="a00994_html_ga02a9d64ea363dc3b231b8cc0b317de8a"><div class="ttname"><a href="a00994.html#ga02a9d64ea363dc3b231b8cc0b317de8a">atca_nonce_in_out::num_in</a></div><div class="ttdeci">const uint8_t * num_in</div><div class="ttdoc">[in] Pointer to 20-byte NumIn data used in Nonce command.</div><div class="ttdef"><b>Definition:</b> atca_host.h:156</div></div>
<div class="ttc" id="a01193_html_a72fae3d62889ef224f09c57a7646e061"><div class="ttname"><a href="a01193.html#a72fae3d62889ef224f09c57a7646e061">atca_derive_key_in_out::temp_key</a></div><div class="ttdeci">struct atca_temp_key * temp_key</div><div class="ttdoc">Current state of TempKey.</div><div class="ttdef"><b>Definition:</b> atca_host.h:307</div></div>
<div class="ttc" id="a01153_html_a37e90f5e3bd99fac2021fb3a326607d4"><div class="ttname"><a href="a01153.html#a37e90f5e3bd99fac2021fb3a326607d4">atca_include_data_in_out::mode</a></div><div class="ttdeci">uint8_t mode</div><div class="ttdef"><b>Definition:</b> atca_host.h:135</div></div>
<div class="ttc" id="a00994_html_ga8ab7bcb35ce5bba05608c72da6b4a0d3"><div class="ttname"><a href="a00994.html#ga8ab7bcb35ce5bba05608c72da6b4a0d3">atca_mac_in_out::response</a></div><div class="ttdeci">uint8_t * response</div><div class="ttdoc">[out] Pointer to 32-byte SHA-256 digest (MAC).</div><div class="ttdef"><b>Definition:</b> atca_host.h:235</div></div>
<div class="ttc" id="a01149_html_a9d39af90116e75f8805942afa953046f"><div class="ttname"><a href="a01149.html#a9d39af90116e75f8805942afa953046f">atca_temp_key::value</a></div><div class="ttdeci">uint8_t value[ATCA_KEY_SIZE *2]</div><div class="ttdoc">Value of TempKey (64 bytes for ATECC608A only)</div><div class="ttdef"><b>Definition:</b> atca_host.h:110</div></div>
<div class="ttc" id="a01213_html_ac76ac607fd679316fc17b16039a86b9c"><div class="ttname"><a href="a01213.html#ac76ac607fd679316fc17b16039a86b9c">atca_gen_key_in_out::other_data</a></div><div class="ttdeci">const uint8_t * other_data</div><div class="ttdoc">[in] 3 bytes required when bit 4 of the mode is set. Can be NULL otherwise.</div><div class="ttdef"><b>Definition:</b> atca_host.h:386</div></div>
<div class="ttc" id="a01189_html"><div class="ttname"><a href="a01189.html">atca_write_mac_in_out</a></div><div class="ttdoc">Input/output parameters for function atcah_write_auth_mac() and atcah_privwrite_auth_mac().</div><div class="ttdef"><b>Definition:</b> atca_host.h:286</div></div>
<div class="ttc" id="a01189_html_aef45bac2efcd5394c4ed79f73ee16d23"><div class="ttname"><a href="a01189.html#aef45bac2efcd5394c4ed79f73ee16d23">atca_write_mac_in_out::sn</a></div><div class="ttdeci">const uint8_t * sn</div><div class="ttdoc">Device serial number SN[0:8]. Only SN[0:1] and SN[8] are required though.</div><div class="ttdef"><b>Definition:</b> atca_host.h:290</div></div>
<div class="ttc" id="a01193_html_a000599eef5677ed1279b025c42ae260e"><div class="ttname"><a href="a01193.html#a000599eef5677ed1279b025c42ae260e">atca_derive_key_in_out::parent_key</a></div><div class="ttdeci">const uint8_t * parent_key</div><div class="ttdoc">Parent key to be used in the derive key calculation (32 bytes).</div><div class="ttdef"><b>Definition:</b> atca_host.h:305</div></div>
<div class="ttc" id="a01169_html_aa9a9b371e24a757dba2cf1f87d03b31e"><div class="ttname"><a href="a01169.html#aa9a9b371e24a757dba2cf1f87d03b31e">atca_secureboot_enc_in_out::digest_enc</a></div><div class="ttdeci">uint8_t * digest_enc</div><div class="ttdoc">Encrypted (ciphertext) digest is return here (32 bytes)</div><div class="ttdef"><b>Definition:</b> atca_host.h:190</div></div>
<div class="ttc" id="a01177_html"><div class="ttname"><a href="a01177.html">atca_mac_in_out</a></div><div class="ttdoc">Input/output parameters for function atca_mac().</div><div class="ttdef"><b>Definition:</b> atca_host.h:227</div></div>
<div class="ttc" id="a01165_html"><div class="ttname"><a href="a01165.html">atca_verify_mac</a></div><div class="ttdef"><b>Definition:</b> atca_host.h:170</div></div>
<div class="ttc" id="a00987_html_ga66a410dde8f388c582495ba315284276"><div class="ttname"><a href="a00987.html#ga66a410dde8f388c582495ba315284276">ATCA_KEY_SIZE</a></div><div class="ttdeci">#define ATCA_KEY_SIZE</div><div class="ttdoc">size of a symmetric SHA key</div><div class="ttdef"><b>Definition:</b> atca_command.h:241</div></div>
<div class="ttc" id="a01149_html_a6b455a7e89f8a891cd7e3b66d1b17b67"><div class="ttname"><a href="a01149.html#a6b455a7e89f8a891cd7e3b66d1b17b67">atca_temp_key::valid</a></div><div class="ttdeci">unsigned valid</div><div class="ttdoc">TempKey is valid.</div><div class="ttdef"><b>Definition:</b> atca_host.h:116</div></div>
<div class="ttc" id="a01217_html_a37e90f5e3bd99fac2021fb3a326607d4"><div class="ttname"><a href="a01217.html#a37e90f5e3bd99fac2021fb3a326607d4">atca_sign_internal_in_out::mode</a></div><div class="ttdeci">uint8_t mode</div><div class="ttdoc">[in] Sign Mode</div><div class="ttdef"><b>Definition:</b> atca_host.h:397</div></div>
<div class="ttc" id="a01169_html_aff3a2b64b0d86058508f766de59438d1"><div class="ttname"><a href="a01169.html#aff3a2b64b0d86058508f766de59438d1">atca_secureboot_enc_in_out::digest</a></div><div class="ttdeci">const uint8_t * digest</div><div class="ttdoc">Plaintext digest as input.</div><div class="ttdef"><b>Definition:</b> atca_host.h:188</div></div>
<div class="ttc" id="a01205_html_aef45bac2efcd5394c4ed79f73ee16d23"><div class="ttname"><a href="a01205.html#aef45bac2efcd5394c4ed79f73ee16d23">atca_check_mac_in_out::sn</a></div><div class="ttdeci">const uint8_t * sn</div><div class="ttdoc">[in] Device serial number SN[0:8]. Only SN[0:1] and SN[8] are required though.</div><div class="ttdef"><b>Definition:</b> atca_host.h:344</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_97aefd0d527b934f1d99a682da8fe6a9.html">lib</a></li><li class="navelem"><a class="el" href="dir_b2187fb9aff39e17c00391b7def58804.html">host</a></li><li class="navelem"><a class="el" href="a00584.html">atca_host.h</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
  </ul>
</div>
</body>
</html>
